40+仍继续做开发?

作者:zccst
在论坛里看到这个讨论,觉得很中肯。以此记录:


【楼主】
看了这个帖子:
http://www.iteye.com/topic/112059810年java开发,在上海找个16k以上的工作很难吗?51job上投了简历,这个星期才面试3家

感触颇深啊 ,说一下我自己遇到的那位老兵:
上个月面试的,年龄40+了,91年参加工作,开始做C,99年转行做Java,辗转了3、4家公司,来我这面试时,简历上写的职位是程序员,我问他薪资要求,他说12K。。。。。。

有时真的应该反省一下,光有激情是不够的,真的要注意方式、方法


【1】
有的人天天想着往前冲,却忽略了眼前的风景,在他们眼中被他们赶超的人都是SB;
有的人天天在看路上的风景,在他们眼中人生只不过是一场旅行,那些一味的冲刺的人都是SB;


【2】
我一同事 女儿今年大一了 在上海两套房 做程序轻松点等退休呢


【3】
工作11年了,前前后后也跟Java打了不止11年交道,感觉还是个“小兵”。

记得刚进大学第一天,系主任开大会时,说的第一件事:
你们选择这个专业,的确很不错,但要做好准备,学一辈子。

印象特别深刻。后悔大学很多东西没好好学。
当年也是因为这句话,毕业后,找了好几个其他行业的工作。
感觉都不是自己的兴趣,回到家里,看了3个月的书,开始进入这个行业。
一直感觉自己太多东西都不懂,还在不断学习中。

借用一位长辈的话,人不能总把自己给端着。放下来,活得就更轻松。


【4】
不要以自己的人生观来评价别人。
几年前,IT行业绝对是个高收入行业,那时候刚毕业实习的学生的月薪在北京可以买两平米房子(不是太偏僻的地方)。
试想一下,或许他已经有两套以上的房子了(固定资产300万以上),或许他买的黄金已经升值很多了,或许他还是没买车仍然公交+步行。
也许他觉得让他每天轻轻松松的敲点儿代码就给他12K,已经很对不起公司了!---也许他真的依旧是那么单纯、善良、快乐。
两年前碰到一个用C做了13年的程序员,他说他刚开始工作的前几年,笔记本更新换代很快,20000——8000的笔记本他就买过三个,因为那时刚工作,没生活压力,收入相对也比较高。10多年过去了,他现在的工资要求是15K,比那个时候高不了太多。这个哥们有房有车有存款,就是只想一直从事程序员的工作。
楼主,你有这种想法没关系,所谓人各有志嘛,但别把你的人生观或情绪带给你身边的人---比如你老婆、你的孩子、你的同事,让他们快快乐乐的生活或者工作吧!


【5】
传统行业有的干一辈子不也就两三千吗。我们的父辈干一辈子工人的有的是,也没见他们多不开心。

管理的就那么几个岗位,干IT的那么多人,有几个能爬上去,当一辈子程序员我觉得挺好的,钱只要自己够花就好。
关键看自己的心态。


【6】
20k 不是人家拿不到,而是拿了那么多钱就要干那么多事情。不过出来打工混口饭吃,何必那么拼命呢?所以七八k拿一辈子,也挺好,正常上班工作,正常下班陪家人


【7】
说实话国人做技术的风气真是不好,大部分做了3-5年的程序员都想转变,转成管理或者业务,这也反映了我国的技术水平。
我现在也工作了5年左右了,一直是开发,之前一直做应用,最近两年才开始大量涉及计算机底层的知识,感觉目前自己才刚刚入门而已。

有些人自以为转到管理就了不起的,说实话你你算个屁啊,技术技术不扎实,管理管理能力也是半吊子水。你的核心竞争力在哪里?


【8】
本人也是个没大志向的人,95年高一开始玩basic dos turbo c, 如今工作十年,还在做程序员,并且希望一直做下去,拿个一万出头的月薪自觉很满足了。但天朝像楼主这样的价值观的人很多,很典型。
什么是安居乐业?我觉得自己目前就是了。夫妻俩加起来二十万年收入,花花正好够用。但离“有出息”,“成功”还很遥远,或许永远都“成功”不了。


【9】
江民,没活过退休
张孝祥,没活过40
苹果乔帮主,没活过50
我看的好几本很厚的书的作者都是黑边框框着,

12K 40..........如果是如上的人可能太低了.


【10】
程序员就不可以做到55退休么?一定要做管理么??难道管理就不是工作么?我到40+了做程序员也是工作,到40+做管理也是工作,虾米到40+了还是做程序员就觉得很奇怪了呢??但是做管理就觉得很正常了,这到底是虾米原因啊!!!!是不是说程序员终归只是过场,最终还是没出息的么????


【11】
在现实中,如果年龄50岁,还是写代码,但技术又很普通,无法让小辈敬仰,且被20岁的小伙呼来唤去,会是什么感觉呢? 这个只有到那个年龄才能感觉到。

但是,即使是SB,做了大家领导,即使技术很臭,被人背后鄙视,但是,却能指示别人干活,无能无知的小辈也不敢惹你。技术大牛也对你尊敬有佳,你50岁的生活是什么感觉呢?

生活永远不仅仅是技术.


【12】
引:现在他肯定也不急缺钱了,没有房贷或房贷已还清,他为什么开12K,因为他想继续写程序,12K以上的职位大部分跟管理沾上边或是管理了。
这个。。。汗,真不是,我这里的开发都是12k起得。


【13】
中国的传统思想所致,做什么都要当官,出人头地才是好。带来的问题,一是浮躁心态,做了几天程序员就以为自己什么都懂了,要当领导,要做官;二是技术高的人要不到资源,有想法,但终究力量有限,成不了大事。
中国很难有原创性或对世界影响巨大的软件产品出现,主要原因之一就是太浮躁,没有沉下去,一般人的技术大多停留在使用层次,以为会使用编程语言,几个开源工具这就是很厉害了。只是停留在表面,没有深入研究,达到理论的高度。对一些复杂的问题,给不出好的解决方案,不能突破。
如果40岁还做程序员,并不丢脸,很正常,很多人很轻视程序员,认为写代码是简单且低级的,这很可能是无知的表现,首先,一个有10年经验的人和一个新手写出来的代码肯定不在同一个级别。代码是一种解决方案,包含了很多的思想和策略,要考虑安全性,稳定性,可扩展性,可维护性,可重用性,兼容性等等,这些都不仅仅是写出几行代码那么简单。划一条线很容易,但直到在哪画这条线则很难。这个故事相信很多人都听说过。
但如果没有在技术上取得一些成果(包括技术文章,软件产品,参加开源社团),那么就显得有些无能了。

附:

“划一条线”与一万美元
德国科技企业管理专家斯坦门茨20世纪初期移居美国,在一家很小的濒临倒闭的小公司里任职。斯坦门茨应用了他高超的技术和优秀的管理本领,很快使这个小公司兴旺发达起来。这时,美国最大的福特公司的一台电机出了故障,很多人搞了两三个月也修理不好,在束手无策的情况下,公司请来斯坦门茨修理。
斯坦门茨在电机旁边仔细观察、计算了两天后,就查出了故障原因。他用粉笔在电机外壳划上一条线,说:“打开电机,在记号处把里面的线圈减少十六圈就好。”人们半信半疑地照他的话去做,结果,毛病确实出在这里。当电机修好后,福特公司老板问他要多少酬金,他说:“一万美元。”老板请他列个修 理明细表,说明用费的用处。斯坦门 茨写道:“用粉笔划一条线一美元,知道在哪里划线九千九百九十九美元。”公司照付了,并且用重金聘用了他。


【14】
引:40岁的程序员是挺少的,但40岁还只要12K,感觉在技术上还是没有什么深入,更别说有什么建树了。
现在上海北京,程序员,资深的50W一年也不少,更多的也不是没机会。就算不在乎钱,也得做和资历相应的事情,而不是最简单的事情。
所以,拿这个薪水在北京是有点说不过去的。


50W一年的程序员,真没见到。。。
我的认知范围里30w年薪的,基本都不纯粹是程序员了。
40W+年薪,都是技术管理者,跟“程序员”3字基本不沾边了。


【15】
不是我想浮躁, 只是当我还要计划着自己赞钱买房, 送小孩上学交着不菲的借读费, 上面还有没有退休金的双亲时...手上的那点钱能干嘛呢


【16】
看得好心酸啊,现在35+,月薪也比16K多不少,但是整天都是搞些吹水冒泡的事情,还想着再干10年,等到4、50岁,回去写代码,拿现在一半的薪水也好,轻轻松松的,没那么大鸭梨。
有没有老同志也是这种想法的啊。


【17】
难得在这里看到有感觉的帖子。

快40了,做IT整整15年,程序更是写了快30年。算是做过些大系统,税务的征管,电信的BOSS那些吧。如大多数人一样,慢慢走向了管理,又慢慢拿到了相对高薪。但忽然有一天,发觉自己存在的价值只是每天坐在办公室内处理一些琐碎的事务,而实际的产出却不知是什么,于是离开了原来的公司。
新的工作职位和待遇也算不错,开始新的项目。由于是事业单位,所以领导的意思就是一切。很唯心地完成了项目,但多少觉得那只是一件废品。其实这些也不是想要的,于是再次选择了离开。

现在闲在家中,有点茫然,在国内这个大环境,到底可以怎样?也许这个社会需要更多些踏实的人,对于IT这行来说也许就是多写几行优秀的代码吧,但现实社会却是太浮躁。难得见这里这么多实在点的人,凑热闹说几句牢骚话,呵呵
<think>好的,用户现在问的是“硬件开发使用汇编语言什么”,我需要详细解释汇编语言在硬件开发中的具体应用。首先,我得回顾之前的历史对话,用户之前问过汇编语言如何与VS Code协作,现在转向硬件开发,可能对底层编程感兴趣。 用户可能是学生、刚入行的工程师,或者对硬件和底层编程有好奇心的爱好者。他们可能想了解汇编在硬件开发中的实际用途,以及为什么在高级语言普及的今天还需要使用汇编。 需要分几个方面来回答:首先,底层硬件控制,比如直接操作寄存器;其次,启动代码和引导程序,因为系统启动时没有高级语言环境;然后是性能优化,特别是对时间敏感的任务;还有设备驱动开发和硬件测试。此外,嵌入式和微控制器领域也是汇编的重要应用场景。 用户可能想知道具体例子,比如如何用汇编操作硬件寄存器,或者为什么启动代码需要用汇编。可能需要提到中断处理、内存初始化等。另外,还要对比高级语言,说明汇编的优势和必要场景。 要注意用户可能对某些术语不熟悉,需要用易懂的语言解释,比如“内存映射I/O”、“中断服务例程”等。同时,可能需要提到现代硬件开发中汇编与高级语言的结合使用,比如混合编程。 还要考虑用户可能的后续问题,比如学习汇编的必要性,或者是否有替代方案,所以回答中最好涵盖这些点。最后,总结汇编在硬件开发中的不可替代性,帮助用户全面理解其重要性。</think>汇编语言在硬件开发中扮演着不可替代的核心角色,以下是其在硬件开发中的六大关键应用领域及具体实现方式: 一、底层硬件控制 1. 寄存器级操作 - 通过内存映射I/O直接操控硬件寄存器 ```asm ; ARM Cortex-M 设置GPIO输出 MOV R0, #0x40020000 ; GPIO端口基地址 MOV R1, #0x00000001 ; 配置引脚为输出模式 STR R1, [R0, #0x04] ; 写入模式寄存器 ``` 2. 中断控制 - 编写中断服务例程(ISR)响应硬件事件 ```asm ; x86中断处理 IRQ_HANDLER: PUSHAD ; 保存现场 MOV AL, 0x20 ; EOI指令 OUT 0x20, AL ; 发送到PIC POPAD ; 恢复现场 IRET ; 中断返回 ``` 二、引导程序开发 1. 启动代码(Bootloader) - 初始化CPU基础环境 ```asm ; ARM复位向量 .section .vectors B _start ; 复位向量跳转 .text _start: LDR SP, =0x20008000 ; 设置堆栈指针 BL main ; 跳转到C入口 ``` 2. 内存控制器配置 - DDR时序参数设置示例 ```asm ; PowerPC内存初始化 lis r3, 0x8000 ; 内存控制器地址 ori r3, r3, 0x0050 li r4, 0x28000200 ; 时序参数 stw r4, 0(r3) ; 写入配置寄存器 ``` 三、实时控制系统 1. 精确时序控制 - 电机PWM波形生成(AVR示例) ```asm LDI R16, 0x81 ; PWM模式设置 OUT TCCR1A, R16 LDI R16, 0x03 ; 预分频系数 OUT TCCR1B, R16 LDI R16, HIGH(400) ; 设置占空比 OUT OCR1AH, R16 LDI R16, LOW(400) OUT OCR1AL, R16 ``` 2. 硬件状态轮询 ```asm POLL_LOOP: IN R16, PINB ; 读取端口B状态 ANDI R16, 0x01 ; 检查第0位 BREQ POLL_LOOP ; 未就绪继续轮询 ``` 四、硬件验证与测试 1. 边界扫描测试(JTAG) ```asm ; JTAG指令发送 MOV R0, #0xDEADBEEF ; 测试模式数据 LDR R1, =JTAG_BASE STR R0, [R1, #0x08] ; 写入数据寄存器 MOV R0, #0x1 ; 启动扫描 STR R0, [R1, #0x0C] ``` 2. 硬件自检程序 ```asm MEM_TEST: MOV R0, #0x20000000 ; 测试起始地址 MOV R1, #0x55AA55AA ; 测试模式 STR R1, [R0] LDR R2, [R0] CMP R1, R2 BNE MEM_ERROR ``` 五、设备驱动开发 1. UART驱动实现 ```asm UART_SEND: LDR R1, =UART_BASE .TX_READY: LDRB R2, [R1, #0x14] ; 读取状态寄存器 TST R2, #0x20 ; 检查发送就绪位 BEQ .TX_READY STRB R0, [R1] ; 发送数据 BX LR ``` 2. DMA控制器配置 ```asm ; 设置DMA传输 LDR R0, =DMA_BASE LDR R1, =SRC_ADDR STR R1, [R0, #0x00] ; 源地址 LDR R1, =DEST_ADDR STR R1, [R0, #0x04] ; 目标地址 LDR R1, =0x00000400 ; 传输长度1024字节 STR R1, [R0, #0x08] MOV R1, #0x81 ; 启用DMA STR R1, [R0, #0x0C] ``` 六、优化关键路径 1. 指令级并行优化 ```asm ; ARM Cortex-A53优化示例 ADD R0, R1, R2 ; 指令1 MUL R3, R4, R5 ; 指令2(与指令1并行执行) ``` 2. 缓存预取控制 ```asm ; x86缓存操作 PREFETCHT0 [ESI+64] ; 预取到L1缓存 MOV EAX, [ESI] ; 后续访问 ``` 现代硬件开发中的典型工作流程: 1. 硬件原型设计阶段:100%汇编实现关键功能验证 2. 量产固件开发:混合使用汇编(20-30%)和C语言(70-80%) 3. 性能敏感模块:使用内联汇编优化热点代码 重要注意事项: - 不同架构的汇编差异显著(x86/ARM/RISC-V) - 需严格遵循硬件时序要求(例如NOP指令插入) - 内存屏障使用确保执行顺序 ```asm DMB ; ARM数据内存屏障 MFENCE ; x86内存栅栏 ``` 发展趋势: 1. RISC-V生态中汇编语言使用率回升 2. 异构计算架构(如NPU)仍需汇编级优化 3. 安全启动等关键功能强制使用签名汇编代码 掌握硬件开发所需的汇编技能需要: 1. 理解目标架构的指令集手册(如ARMv8-M手册) 2. 熟练使用调试探针(JTAG/SWD)进行指令级调试 3. 掌握时序图与汇编指令的对应关系 4. 熟悉交叉编译工具链配置 通过汇编语言,开发者能实现:精确的时钟周期控制、硬件状态直接操作、最小化代码体积(bootloader可小于1KB)、以及满足严格实时性要求,这些特性使其在硬件开发领域始终保持不可替代的地位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值