求助:一个新人程序员的苦恼和迷惘

进入一家软件公司半年多了,我感觉自己依然在门外打转,没法成为一个真正的程序员。前阵子公司目标管理评价的结果出来了,我得了B-,这是最低的一个评 价。我开始怀疑自己的能力,在沮丧之余甚至一度自暴自弃的想放弃。但另一方面,做程序员是我事业上的理想,我一直很想通过努力成为一个优秀的程序员。好不 容易踏入一家软件公司,我不舍得为了一点挫折颓废堕落。下面我谈谈我的问题所在,希望各位资深的程序员们能够谈谈你们的想法和感受,帮帮我......  
          在我看来,编程和干其他体力活或者写些什么文章有很大的不同。干体力活只要工作认真,肯吃苦,就能够得到回报。而编程时只要有一个细微的错误,就会使程序 瘫痪,如果技术上差一点找不到问题所在,有时候会连续两三天什么都干不了。因此每次我被分配到开发任务的时候,总是有着很大的心理压力,我无法想象当任务 期限到了的时候如果完不成会有怎样的后果。  
          我记得有一次用VC写一个不到三百行的小函数,在运行时系统总是会崩掉,不管怎么查都找不到问题。最后原本预定一天要完成工作,我拖了整整三天。在这三天 里,我被无数次的调试弄得冷汗涔涔,几乎要哭出来了,作为一个劳动者的责任告诉我:不能因为我拖慢整体的进度,我一定要完成组长分配的任务。可越这样想就 越是着急,最后人搞得快崩溃了......。  
          春节过后,我们组要开始一个新项目,到时我会分配到很多编程的工作,而且时间很紧。我真的很迷惘,到时候如果再碰到技术上的问题怎么办,难道每次都因为我 拖慢小组的进度?难道我真的不适合做程序员?可是又从心底里喜欢上了编程,在电脑桌前写程序即使连续十几个小时都不觉得累......  
          各位程序员们,我真的很想知道,当你们碰到技术上的问题(比如编译无法通过,运行出现错误时),会采取些什么方法解决,会不会在一个小错误上卡上两三天? 我看我的同事们,他们仿佛不会碰到这些问题似的,分配给他们的任务总能轻松的做完,还有闲情在上班的时侯上网聊天。我真的很希望像他们那样,我该怎么 做?????????????????  
   
  另外,我觉得自己真的很没用。虽然很用心的学,但知识对我来说仿佛学不完似的。半年前作为一个刚进公司的新人,我碰到不懂的就问前辈。半年后,在问过无数 问题之后,我自己感觉好象还是新人似的什么都不懂,在碰到问题时,依然只能求助于别人。而和我一起进公司的其他新人们,都已经像雄鹰一样展翅高飞了。恳求 各位高手指点明路,拉一把在事业的道路上苦苦挣扎的人吧。





回答(袁峰先生回答,马说 那里翻译,我转摘的):
Think, think, think, ...
思考,思考,再思考……

Not knowing something or making mistake is okay. But what is important is learn from your mistakes and do not repeat them.
并不是说弄懂了什么东西或者犯个错误就可以了,但是最重要的是你需要从你的错误中学到东西,并且不再重复地犯这些错误。
When you meet another problem/bug, do the following:
当你遇到另一个问题/bug的时候,这么做:
 
1) Think on your own to solve the problem.
1、独立思考解决问题。
2) Read/search for solutions to solve the problem.
2、阅读/查询解决问题的方法。
3) Try to think different ways to solve the problem.
3、尝试不同方法来解决问题。
4) When all those fail, ask for help.
4、当这些都失败后,请求帮助。
5) Write down what you have learned, what you should have done differently to avoid the problem.
5、写下你所学到的东西,以及如何做才能避免这个问题。

For coding:
对于编码:
1) Proof in your mind that your code will work when you write.
1、在你编写代码的同时,根据想象来检验它是否能够正常工作。
2) Ask yourself whether your code is the best solution possible.
2、问问自己,代码是否最佳解决方案。
3) Write unit test programs for your code.
3、为你的代码编写单元测试程序。
4) Step through your new code in a source level debugger, line by line.
4、在源代码一级的调试器中,一行一行调试你的新代码。
5) When an error is reported to you, learn to debug the situation to figure out what is going on, what caused the problem.
5、得到错误报告后,了解调试时的情况以便指出到底发生了什么,又是什么引起问题的。
6) Learn assembly code, check how compiler generates code, learn how virtual function works, learn to debug at assembly code level.
6、了解汇编代码,检查编译器是如何产生代码的,了解虚函数是如何工作的,学习在汇编代码一级调试程序。

Work hard and work smart.
不单单要努力工作,还要学会聪明地工作。  
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值