4 Star 24 Fork 6

cncounter / translation

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
CareerAdvice.md 12.48 KB
一键复制 编辑 原始数据 按行查看 历史
renfufei 提交于 2021-04-25 10:03 . 2. Maven安装与配置

推荐给年轻程序员的8条职业生涯建议

As the old Faces song "Ooh La La" goes, I wish that I knew what I know now when I was younger. Back then, I simply loved to code and could have cared less about my "career" or about playing well with others. I could have saved myself a ton of trouble if I'd just followed a few simple practices.

就如儿歌 "Ooh La La" 所唱的那样: 多希望我年轻的时候,就懂得如今才领悟的道理呀。 那时候的我心里只装着代码, 才不愿意去想想自己的职业生涯呢,也不会主动维持朋友和同事之间的关系。 要是当初有人指点一二, 我肯定要少走多少弯路啊!

1. Take names.

I was really focused on computers early in my career and considered people to be minor annoyances who kept me from being one with my beloved machine. OK, I'm exaggerating a little. Despite meeting many industry luminaries and people that would have been worthwhile to befriend, I didn't keep any business cards. I didn't bother to remember their names and never checked in on them. I only went to user groups (there wasn't meetup.com when I started and it wasn't a big thing for a while after) when I needed a job.

I realize the concept of needing a job seems a little quaint to some of you younger developers. But take it from me -- there've been times when merely saying you're a developer and knowing basic syntax and how to search (there was no Google when I started) was not enough to find immediate employment. There was a time when developers actually called headhunters versus being spammed by them endlessly. This will happen again, eventually.

More important, a lot of developers who were more skilled than I am have had far less interesting careers and less success because they never put themselves out there. They never met the right people at the right moments. Hey, timing and luck are great, but you also make your own opportunities. The first nine times you go to a large gathering and no one speaks to you and you're left with all the perks of being a wallflower are practice for the 10th time when you meet someone interesting.

Also, take note of your peers. If you're an early 20-something, chances are you have no real power or influence, and neither do your peers. In five to 10 years, that will all be different and the person who you ignored because they were boring and couldn't help you will be the person who could have won you an important opportunity.

1. 保存联系方式

刚毕业的我, 一门心思都扑在了计算机上面, 电脑就是我心爱的大老婆, 如果谁让我和电脑分开、我甚至会想翻脸。 好吧,说翻脸可能夸张了一点. 但那时候虽然我见过很多业界知名的专家, 也参加过各种交流会、认识很多真心值得去结交的人, 但可惜我没有留下他们的名片, 平时也没有花心思去联系和问候。 只有跳槽和找工作时会加一些邮箱联系人(那时候还没有视频, 也没有微信)。

今天的开发者可能有点难以理解 “需要一份工作” 这种事情. 但说真的, 那时候还没有谷歌, 如果你只会点语言基础和基本的语法, 还只会使用搜索引擎的话, 是很难找到份好工作的。 有一段时间, 程序员被猎头称为是 无尽的骚扰。 隔一段时间之后,这样的一幕很可能还会再次上演。

更重要的是, 很多经验丰富的程序员也干得不开心, 甚至不算成功。 有的是没有机会, 有的是没能在合适的时间遇到对的人。 确实, 时机和运气都很重要, 但我们也可以自己创造机会. 也许参加9次交流活动, 都没找到聊得来的人, 你只是去做灯泡和背景的, 但第十次很可能就会遇到人生中的贵人(真正愿意赏识你的那人)。

当然, 也请多关注同学和小伙伴。 也许在20多岁的时候, 你和小伙伴都还没有多少影响力, 技术实力也不怎么样。 但5到10年之后, 情况就不一样了,当年很无聊或者有点烦人的那些家伙, 一般都发展得不错, 可能会帮助我们抓住某些重要的机会。

2. Problem solving.

Luckily, this came pretty naturally to me after a while, but early on it was a struggle. The trick is tonever fall in love with any one theory of the problem. Pick three theories and go about proving them wrong rather than trying to prove yourself right. Also, gravitate toward alternative theories. If something says there is a port conflict and you can't find any port conflict, then maybe you're connecting to the wrong network device or an unassigned IP address, and the error is bogus.

Problem solving is essentially the same thing you learned in abstract in seventh or eighth grade or whenever you learned simple algebra. Remove all of the variables that you can, then solve for x.

2. 善用排错法

计算机软件是一种神奇的存在, 只要把错误都解决掉, 他就能正常运行。

刚工作没几年的时候, 很多问题会让人抓狂、沮丧、欲死欲仙、秃头到顶。

幸运的是, 只要持续学习, 我们解决问题的能力会越来越厉害。

排错法是一种非常有用的技巧, 避免认知偏见, 也不要固执己见。 证明十种假设都不对, 也比证明自己的推测是对的要容易很多。

此外, 想一想各种可能的情况。 比如提示信息说端口冲突, 但我们却怎么都找不到, 那也许是其他地方出问题了。 比如要连接的网络不对,或者是IP地址没分配等等, 因为错误提示可能也是错误的。

解决特定问题, 本质和中小学生的抽象问题很相似, 比如代数方程。 去掉所有可消除的变量, 然后解出那个x

3. Pick your language or other technical specialties based on the market and your career goals.

Sure, you want to do what you love, but really is Scala (insert other language name here) your real love in life, to the point where you are willing to tie your success or failure to it? A better reason would be that it is a smaller talent pool and you might be able to make more money doing it and you know that the finance and scientific community near you is big enough and using it avidly. (It also might be you want to work for Typesafe.)

Either way, pick rationally rather than based on some weird zeal for a syntax. Hadoop is wicked cool, that's a fact. However, analysts are predicting the market will grow several times in the next couple of years, and there is a huge uptake. Companies are building out major infrastructure in a way I haven't seen since the '90s. I think PaaS is awesome, but I do not see tons of business opportunity for developers here. Publicly show passion and enthusiasm, but privately make this a cold, hard calculus and business decision. Your favorite technology will be dead probably before the end of your career anyhow.

3. 根据市场和规划选取一种语言/技术

当然, 你想用喜欢的语言, 但 Python 真的是你的最爱吗?(此处可代入任意其他语言). 你想将宝压在哪个上面? 是否比较小众, 可以赚更多的钱, 或者因为企业和社区使用广泛? 或者你想去的公司主推这门语言?

无论如何, 选一个靠谱的语言, 而不因为语法奇怪或者仅仅是猎奇。Hadoop吊炸天,这是一个事实。分析师预计其市场在几年内将会翻很多倍, 所以有巨大的上升空间. 各个公司也在大力建设基础设施,这是90年代以来从没见过的事。我认为 PaaS是极好的, 但在这个领域看不出对程序员有什么好机会. 大胆释放你的梦想和情怀, 但私下里还请细细斟酌。你现在喜欢的技术可能没几年就过时了。

4. There is relatively little real innovation in the software side of the industry compared to popular perception.

Most of us who have done this for more than five years have already watched all the vendors rename everything and sell it as new at least once. Anyone working for more than 10 years has seen it a few times. When you go into a meeting with a bunch of old people, realize that they roll their eyes at many of the things you think are new. There are some innovations, but those are usually combinations of previous technologies. While Hadoop may be hot, HDFS is a distributed filesystem and distributed filesystems have existed for decades.

4. 软件行业很少有真正的创新,比想象中更少

在软件行业干了5年的人, 已经能看到有很多换汤不换药的东西, 厂商换个名字重新包装下又可以大卖一番。如果工作了10年, 看到的事情可能更多。当你和老程序员交流时,就会发现你觉得很时髦的东西,他们却不以为然. 是有一些创新, 但大多都是把以前的技术组合一二。尽管 Hadoop 很火爆, 但 HDFS 只是一个分布式文件系统(distributed filesystem), 而分布式文件系统已经有很多年历史了。

5. Think in terms of a career, not a series of jobs.

When I started I job-hopped for relatively dumb reasons: I didn't like that I was put in a cubicle, I could get an extra $5 per hour, and so on. This would come back to haunt me during the dot-bomb. At the same time, I usually failed to pick jobs for the best reason: What will help me progress in my career? Sometimes that means taking a job for less money but more responsibility or better opportunities. I probably still have put in my time at big companies -- then quit working for them sooner. It's relatively hard to make an impact from the inside of IT in a big company and opportunities are frequently limited.

5. 把这当做你的事, 而不是打工的

刚工作的时候,我一直在跳槽,想想原因也挺傻的: 办公环境不满意, 觉得自己值更多的钱. 这一直困扰着我。也并不会长远考虑: 对未来有帮助吗? 一般来说工资低一些无所谓, 但要有更多的成长,有机会承担责任, 或者有更好的发展空间。也许我还是会进大公司 —— 然后就不陪他们玩了. 大公司的IT部门想晋升很难,而且机会也相对较少。

6. Work more than 40 hours per week.

I don't mean you should work in a sweatshop or run yourself to death, but make a personal investment in your career. If the only time you learn something is on your boss's dime, then prepare to have your options limited -- your boss isn't going to train you to make sure you have options.

6. 每周工作40小时以上

并不是让你在外包公司或者血汗工厂累死累活, 但你应该多花一些时间在工作上. 如果你只在上班时间学习(公司用到的技术), 那么未来的路也就很狭窄, 而公司只会根据自身利益来培养你。

7. Programming is not hard unless you make it hard.

I disagree with Joseph Gentle. People are still messing up software development in the same dumb ways since software separated from hardware. Programming simply requires reading, concentration, and logic. Luckily, plenty of books, courses, and patterns can tell you how to do all of that (see No. 6). Coordination with other people on any scale? That's hard.

7. 编程语言并不难

我不同意 Joseph Gentle 的观点。将软件和硬件分离以后, 很多人仍然把软件开发搞的一团糟. 要编程只需掌握 阅读(reading)、专注(concentration) 并有一定的 逻辑思维(logic) 即可。幸运的是, 现在有大量的书籍、课程和模板可以让你学习(请参考第6条). 在开发中和别人进行良好的协作? 这倒是有点难度。

8. For Zod's sake, learn to communicate.

If you are unable to write properly in English (or the appropriate language for your community), take a writing course. If you are unable to give a talk, get over your stage fright, take a course, practice in front of a mirror, and/or attend some meetups and learn. This is probably as important as writing code.

  1. 说句心里话, 需要学一些沟通技巧

如果写作不好, 可以参加培训班。如果不擅长与人交谈, 那么请克服怯场, 参加一些培训, 或者在镜子前练习, 也可以参加一些交流活动或者讲座。沟通交流应该是和写代码一样重要的东西。

Now it's your turn. If you're more than five years in, what do you wish you'd known at the start? If you're less than five years in, what advice have you found helpful?

如果工作时间超过五年, 你会给刚入行的同事什么建议呢?

附赠一句K神的劝勉: 只要把技术学精通了,迟早都能变现!

原文链接: Eight points of career advice for young software developers

HTML
1
https://gitee.com/cncounter/translation.git
git@gitee.com:cncounter/translation.git
cncounter
translation
translation
master

搜索帮助