Three things you should consider before switching careers as a programmer

 

 

From 2013 to 2014, there was a wave of coding in the world, and major media reported frantically, advocating that young people must learn to write programs no matter what they learned. Every now and then I see articles like "Programmers are one of the most lucrative jobs!" or "Even Obama started coding, can you not?" They are doing crazy programs. Even at the end of 2015, such articles still appeared from time to time. In contrast, many people think that their current job is very bad, including the boss’s repressive rule, the work content is boring, the salary is only subsistence, etc., seeing the words “high salary”, “work abroad” and “hot job” in the article , Do you want to change careers? Today, I will put together some suggestions for you.

  First thing, what are programmers doing?

  First of all, there are many fields of programmers. I was deceived by movies before, thinking that programmers are the hackers in the movies. They can complete a very large system architecture in just a few seconds. Whenever the words such as intrusion, cracking, and infiltration are mentioned , hackers can easily handle it. But to tell the truth, "hacking" is just one category in the field of programming, such as mobile phone software, websites, database maintenance, servers, big data, etc., each field is a profession, not only we usually see "Google" Engineers”, “Apple Engineers” as simple taxonomy.

  Therefore, when the major media are advocating changing careers to become programmers, most of them are talking about software engineers, mainly because software is the most commonly encountered in our daily life, including desktop software, Mobile software and websites are all projects that have been in full swing in recent years.

  The programmers mentioned below refer to software engineers. So what exactly are engineers doing? As far as work is concerned, do not go beyond the following five things:

  1. Discuss with other engineers

  2. Write the code

  3. Solve bugs

  4. Communicate with users

  5. Tear with the product and be scolded by the boss

  For relatively junior programmers, the step of changing bugs will take up most of the time, and the process is very boring and long. Ask an engineer about the stupidest mistake he's ever dealt with, and the answer must be "It took me a whole day to find a typo." Does it sound like a waste of time? Yep, what a waste of time! Even, all kinds of mistakes are "the house leaks and it rains overnight". Whenever you need to concentrate on other things the most, mistakes will appear, and then the things you originally planned to do are put on hold, the progress is too late, and finally scolded by the boss. This is definitely the norm for new programmers. Of course, in these mistakes, we have to learn how to write better programs, avoid the mines that have been planted for ourselves, and reduce the chance of mistakes. Over time, we rarely make such stupid mistakes again.

  But don't master programmers need to change BUG? It is a pity that senior engineers not only deal with their own mistakes, but also those of others. The more senior the engineers, the more difficult the problems they encounter. I believe everyone knows that many companies will go to senior engineers with large sums of money, and in addition to writing new software, many software development requires people to wipe their butts. Just as entrepreneurs face various economic, psychological and social pressures, engineers are faced with various procedural problems, which may be a bug in a complex program or a technology used in company services. problem.

  For example, in the famous GitHub attack incident, when everyone thought that Ruby on Rails technology was safe, someone suddenly caught a serious security hole. If we happened to use the same version of Ruby on Rails in our company, would it be because of this? Want to solve this problem for the company?

  So one of the big things in the life of an engineer is to solve problems. If you face these situations every day, can you still enjoy them?

  The second thing, don't be blinded by the media propaganda

  Programmer salary is super high?

  There are ways to earn high salaries in all fields, but for programmers, the situation is more in line with the "80/20 rule", as many people say:

  Engineers can't starve to death, but they can't save much either.

  Whether it is a programmer with ordinary ability who can only follow orders, or a programmer who is unkind and has a stingy boss, it is probably impossible to get a high salary. If you are a programmer who is a half-way renunciation, you will not be able to expect a super high salary at the beginning, and it is difficult to find business opportunities to start a business immediately, especially if you have less bargaining chips to change jobs, unlike many students in other types of work who have a foundation and work, it is easier to find a job. .

  要谈高薪,还是得拿实力来谈,若是无法针对中型的软件项目设计出良好的构架、或是对自己擅长的技术还不完全了解,那对于薪水还是不要有太高的期待,而这些都是需要经验累积的。刚起步的程序员,对媒体报道分分钟年薪百万这类天花乱坠的形容词别想太多。

  根据程序员客栈www.proginn.com这么多程序员的经历,刚起步的程序员只要有耐心,绝对能找到一份工作薪资可供生活,外加存点小钱。身为程序员,希望大家对普遍薪资较低的情况能有所抵制,对于过低的薪资要勇敢拒绝,接受的话只会放任无良企业继续用相同薪资雇用其他程序员,加上自己生活质量和士气也会跟薪资一样低落。

  转行成为程序员后是否美好?

  真正转行成为程序员了以后,问题才是接踵而来,很多事情等着探索。例如学历就是一大难关,程序员这个行业是看重学历的,当然这边讲的不是说一定要名校毕业,而是「本科系」这件事情是相对重要。我相信很多人都吃过这个亏,转行前一度以为可以靠一股热情打天下,殊不知在面试许多公司时,老板听到并非本科系都会眉头一皱。有一位好心的老板在通知面试未录取的时候,也同时说:

  “工资是和学历挂钩的,这是全世界通用的法则,未来你想成为资深开发者,这更是每位老板都会看的。如果没办法再修一个学位,至少要能提出证明你对这些机器、算法等硬底子的学问都有点基本认识。”

  虽然感到震撼,但这确实点醒了我,程序员并不是单单会一项技能而已,而是要对整个领域略知一二。

  另一个难关就是要保持热忱,程序开发技术推陈出新的速度超越其他领域许多,在工作压力下,许多人会选择不去学习,导致进步的速度跟不上整个世界翻新的速度。可能有在接触的人有听过近几年Web前端技术的战国时代,从Java延伸出来的框架多如繁星,从目前最热门的React Native,到前一两年窜起的Angular.js、Ember.js,外加之前打得火热的Node.js和io.js战争,每一年都有爆炸性的改变。

  假如我今天是专精Web前端的工程师,在这些技术出现时,势必要了解他们要解决的问题、优点、缺点等等,并决定有没有需要使用这些技术来改变现有的构架。例如公司现有构架是直接用纯Java实作变数即时更新,如果改用Angular.js,可以大幅减少代码的数量,直接交给该函式库来处理。今天假如我们没有特别探究这些技术,未来在寻找其他工作时,技术主管也会期望你稍微了解这些技术。简单来说,你不前进,别人也会推着你前进。

  这只是其中一个例子,程序开发领域在小地方都有无限多的变化,必须不断学习、接受改变。转职前,很多事情我们想的很美好,但在转职后,才知道这个领域有他自己的法则,在这边无法一一列举,但不管怎样,如果有决心、有热情,这些难关对你来说只会是长远路上的一块小石头。

  第三件事,你对写代码真的那么热爱吗?

  对于热情这件事,不得不再次提到二八法则,因为有80%的热门技术是由20%的人所构架出来。不管你未来所钻研的是哪种技术,总会在领域中有一些神人,他们可以1个人就超越10个的产值,对该技术有非常完整且深奥的了解,并且针对难懂的问题有非常优雅的解法。这些人决定了未来技术的走向,例如目前市面上的大型商业软件,许多都是由少数人将构架完成,后续才是由许多工程师进行维护、更新。

  你想成为那些「大神」吗?虽然许多程序员做了一辈子也没办法,但仍然要保有那「想要成为大神」的热情,才能得到担任程序员的快乐。在生活中程序员不只会遇到系统错误,更常会遇到使用者给予的意见,包括常在Google Play或App Store上看到的评论:「这软件超烂」、「一分都嫌太高」等等,没有重点却严重打击士气,也是生活中的一部分。反之,尤其在大型项目上线,陆续收到使用者说回馈说:「使用上变得更方便了,谢谢你们!」这类温馨的评论让人非常有成就感。抑或是在钻研特别技术,而成功让项目有大幅成长的时候,例如用Go语言将部分Ruby on Rails的API服务重写,让整体速度提升20倍以上,这些数据都会让程序员非常有成就感,也是工作上很大的满足。

  反之,当我们只想着要每天安安稳稳的写代码、维护项目,以上那些情况就绝对不会发生,我们整天只会自怨自艾,对现况感到不满却不改善,把所有的错都推给使用者、推给主管、推给别人。那不如不要转行了,不妨待在自己目前的位子上,好好过生活即可。一定要充满热情,想要成为「二八法则」中的领导者,跳进程序员这个圈子才有意义。

  小结

  当你决定成为一名程序员的的时候,你要对自己做的事情有热情、想要不断学习、发掘新知、研究新技术,否则转行一点意义都没有,如果想安稳过生活,不如就找一个无聊的工作,专心研究股市吧,这样的生活质量会比程序员好多了!

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326754634&siteId=291194637