程序员的路,谈何容易?

(written in  时间: 2011-04-09 13:50:24


虽然说我在大学学了四年的计算机,但是在学校期间的编程事情是相当差的。去了几个月的培训,时间很多,学的东西不多,而且不扎实,自己也没有很好地理解透。直到现在,在一家小嵌入式公司实习,发现了自己很多的不足,但是更多的是看到自己在不停的进步,这样非常快乐。说真的,快到毕业的时候总是会跟大家一样,比比哪里的福利好,比比谁的工资更高。问题就是在这里,有了这种攀比的心理,总觉得一定出去就有工资高待遇好才能算是有面子。其实,我也是相当矛盾。说真的,自己对自己的技术掌握程度是最清楚的,最怕的是进不了大公司的门槛,在小公司呆着确实是有点不甘愿。再加上今年招Android应届毕业生的公司几乎对这一块没有要求,也没有一套所谓的面试题,就算毕业生手头上没有一个像样的软件展示,只要Java基础比较扎实,对这个行业有看法有兴趣,公司都会要的。在这个情况下,我就有点想去深圳的公司,但是我又在想去了也未必能在这里学到这么多东西,虽然我在这个小公司福利不好,工资又低,还觉得很累,但是我觉得很快乐,每天我都学了很多东西,巩固了知识。再加上我想拼完大学的最后一次六级考试,我还是决定暂时留下来,当作是一种生活体验也是好的。虽然说我现在做不了什么东西,但是将在这一年在这个公司所做的东西肯定会是一个完整的拥有一年开发Android经验的。因为,都已经跟中层架构打交道了。

昨天阿晖跟我谈到ITEYE里面有一篇文章,这个http://ijavagos.iteye.com/blog/988559

是原文地址,作者的观点是“能进大公司就进大公司”。我否定这个结论。我不排除我进来小公司的时候,他们跟我说的在大公司学不到东西这样的话是为了留住人才。但是有一点,他们说的是没错了,大公司就是分工太细,每个人都只是负责一个小模块。有些人在大公司做,直到他退休,他只会做自己负责的哪一个模块,但是他永远都不知道自己所做的模块用来什么地方,要怎样才能跟别人的做的部分整合起来。当然,如果大公司全部都是这样的员工,那么谁能担当最后把所有模块整合成一个软件的人呢?有是有的,非常少。在加上人是惰性的,生活得很安逸的时候总是不会去多想危险的时刻,如果遇到困难会怎样,如果大公司某一天遇到金融海啸倒闭了还能工作吗?能,去另一家大公司。小公司呢?几乎每个程序员都是项目经理,也就是说每个程序员几乎都可以独立完成一个软件,无论从需求分析,设计,开发,测试,维护,他都会做。很多人会说,这样什么都一个人做的情况就会出现杂而不精。这个问题就像通常说的,懂很多门开发语言,没一种是精通的。我很肯定,精通这个东西是需要时间去消耗的。做同样的东西次数多了,花心思去的时间就会多了,所以经验才是王道。在大公司,成天都是做同样一个小模块的东西,不能在短时间内精通,那是不可能的。同样,在小公司干,要做整个框架的所有内容,要在很短的时间内将所有模块所设计的内容搞精通是不可能的。当然在小公司干的时间长了,对整个模块的所有内容都精通了,你就可以随时坐上去大公司的那个整合的设计人位置。你说哪个划算?感觉好像在大公司混还吃亏了?不是的,大公司也是同样的。在大公司的程序员每天按量完成任务后,会有一些空余时间,这时候很多人由于安逸这个惯性就想着去休息,但是小部分人不这么想。他们去学其他模块的东西。于是,大公司里面混的这些把空余时间利用起来的人就可以担当大公司整合模块的设计人了。总体来说,在大公司混还是在小公司混,没有绝对的好和不好,只有一句话“修行看个人”。即使在小公司做的时间长了,有些不想搞太累也不会去专研细节问题。不过,有一点是肯定的,就是在小公司混的人,他已经具备开公司的思想了。

那篇文章还分析一些行业的东西,我也不太同意。即使是在做软件开发,很多公司的模式也不同,不是软件公司也会有专门的一个开发部门。这个开发部门跟专门做软件的公司有什么区别?其实也没多大的区别,同样是比较安逸。只负责做本公司的软件,不涉及其他的东西。专门做软件的公司,多数都是做外包,自己单干的也有,但是也要看老板能不能拉到更多的客源。那篇文章的作者还总结了一句话“不当程序员后悔,当了程序员更后悔。”,这个是典型失败的程序员说的话。我在这里告诫大家,要做一个成功的程序员,不管在什么地方工作,都要切记保持开朗的心态并且要一直进步着。没有进步就没有竞争力,在大公司是可以呆着,你只能一直都是普通程序员,升不到开发经理更到不了技术总监;在小公司可以呆着,总是做低层次的东西,跟老板说话也没底气来提高自己的身价,更没底气去跳槽。成功的程序员才不会跟大家说这些秽气的话,他们肯定是忙得没时间瞎掰了或者是想把时间用在其他方面了。

虽然不能说我是一个成功的程序员,但是,我会像CSDN的绝影一样,跟大家分享我的程序员职业生涯的心得体会。做程序员是很累,只是说明还没上手或者是精力不够,当一切都顺手的时候,写代码不再是一件很难的事情。

### 回答1: 程序员可以通过以下工具和技术来辅助他们的工作: 1. 代码编辑器:提供语法高亮,自动补全和错误检查等功能。 2. 集成开发环境(IDE):包括代码编辑器,调试器,版本控制等功能。 3. 自动化构建工具:如Maven,Gradle和Ant,用于管理项目依赖关系和构建过程。 4. 版本控制系统:如Git,SVN和Mercurial,用于管理源代码版本。 5. 单元测试框架:如JUnit,TestNG等,用于编写和执行代码测试。 6. 项目管理工具:如JIRA,Trello等,用于管理项目任务和进度。 7. 数据库管理工具:如MySQL Workbench,SQL Server Management Studio等,用于管理数据库。 这些工具和技术可以帮助程序员提高工作效率,提高代码质量和管理项目。 ### 回答2: 程序员的工作涉及到开发、测试、部署和维护软件系统,这些工作本身就是需要耗费大量时间和精力的。为了提高工作效率,辅助程序员的工具和技术可以帮助他们完成一些重复性、繁琐或需要高度专注和准确性的任务。 首先,自动化工具可以辅助程序员进行代码编写和生成。例如,代码自动完成工具可以根据已有的代码或函数名称提供可用的选项和建议,减少输入时间和错误。代码生成器可以根据指定的要求自动生成特定的代码片段或者整个函数,加快开发速度和减少错误。 其次,调试和测试工具可以辅助程序员进行代码调试和错误修复。例如,集成开发环境(IDE)通常集成了调试器,可以在代码的不同执行阶段中插入断点,观察和分析程序的运行状态,帮助程序员定位和解决问题。除此之外,单元测试和自动化测试工具可以帮助程序员编写和执行测试用例,发现代码中的错误和缺陷。 第三,版本控制工具可以辅助程序员进行代码管理和团队协作。版本控制系统可以追踪代码的变更历史,并提供合并冲突、分支管理等功能,确保团队成员之间的代码同步和协同开发。 此外,文档生成工具可以辅助程序员生成项目文档、API文档等。这些工具可以根据代码的注释和标记生成对应的文档,减少文档编写的工作量和错误。 最后,性能分析工具可以辅助程序员进行代码性能和资源利用的优化。这些工具可以监测和分析程序的运行时性能,提供性能瓶颈的定位和优化建议,帮助程序员改进代码的质量和效率。 总的来说,辅助程序员的工具和技术广泛应用于代码编写、测试、调试、版本管理、文档编写和性能优化等方面,帮助程序员提高工作效率和代码质量。 ### 回答3: 辅助程序员的工作有很多,主要包括以下几个方面: 1. 编辑和开发环境:辅助程序员的一个重要工具是编辑器和开发环境。编辑器可以提供代码自动补全、语法高亮、代码格式化等功能,使得程序员编写代码更加高效准确。开发环境则提供了编译、调试、测试等工具,帮助程序员更好地完成项目开发。 2. 版本控制:版本控制系统(如Git)可以帮助程序员管理项目的代码版本,追踪代码变更历史,并能协作多人同时开发。通过版本控制系统,程序员可以轻松地合并代码、解决冲突,并能够回滚到之前的任意版本,提高版本管理和代码协作的效率。 3. 自动化构建和部署:自动化构建工具(如Maven、Gradle)可以帮助程序员自动编译、打包、测试和部署项目。通过配置构建脚本,程序员可以定义各种构建任务和依赖关系,简化繁琐的手动操作,提高构建和部署的效率。 4. 代码质量工具:代码质量工具(如FindBugs、Checkstyle、SonarQube)可以帮助程序员检测代码中的潜在问题和违反规范的地方。这些工具可以查找代码中的bug、代码冗余、性能问题等,并给出相应的修复建议,帮助程序员改善代码质量。 5. 文档和帮助系统:辅助程序员的工具还包括文档和帮助系统。良好的文档可以帮助程序员理解框架、库和API的用法,并提供示例代码和注意事项。帮助系统则提供了对工具和技术的详细说明和使用教程,帮助程序员解决问题和学习新的知识。 总之,辅助程序员的工具旨在提高开发效率、简化开发流程、改善代码质量和提供支持等,使得程序员能够更专注地进行编码和问题解决,从而提高开发工作的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值