四个月前,我从一所代码学校毕业,这所烂学校只教了我Ruby和Ruby on Rails的基本知识。一个星期后,我有两个面试。面试后的两个星期之后,我拒绝了第一家公司的offer,接受了另一个团队的offer,早在我去上代码学校的六个月前,我就已经盯上了这个团队。除了8周时间学习如何编写代码,最后4周时间创建毕业app(一个职位公告板)之外,我的实际编码经验为零。但是,我在四个月的时间里,成功地从一个没有出路的工作转为了初级软件工程师。
先做重要的事情。Just to it!
首先放下恐惧,然后,一往无前地去追求自己的梦想。放弃一个高薪工作,背着学费债务去上学固然会令人望而却步,但并不是我最大的恐惧。我最大的恐惧是即使我顺利地完成了学业,到时候要是找不到工作那就完蛋了。如果我担心的事情成为了现实,我该如何去面对我的家人?如果我学不会编程又该怎么办?也许我应该放弃这些梦想。
不要放弃!
正是这些消极的想法侵蚀了你的梦想和志向。所以不要再磨蹭了。拒绝生活中那些尽散播负能量的人。下定决心是否要去追寻梦想。花一点时间明确需要克服的障碍和困难。我大概花了一个草图之后,就冒着风险辞掉了原先那个安稳但毫无前途的工作,毅然决然地进入学校进修。对此,我要感谢我的妻子,是她鼓励了我,让我有信心坚持下去。
网络
在开始上课的几天前,我联系了Coleman McCormick,Spatial Networks公司的副总裁。我事先在LinkedIn上通过发消息来介绍自己。在消息中,我提到,我正准备去编程学校,希望将来毕业的时候能为他和他的团队工作。他回复了我的信息,并邀请我见面吃午饭。我之所以高亮“邀请我见面吃午饭”是因为这是本文的关键部分。我还没开始学习,就已经有人请我去吃午饭了,而且还是我梦寐以求的公司的副总裁请的。网络让一切变得容易又有效:
- 建立联系。
- 介绍自己,并告诉他们你为什么想为他们工作。
- 给他们一个回复你的理由。
我在学校的时候,Coleman发表了一篇名为《A Quick Guide for New Developers》的博客,旨在引导开发新手应该怎么做。
当今世界到处都有声称“可以教你写代码”的博客、播客、书籍和视频。不要误会我的意思,我想说的是,我们正生活在一个超棒的世界里,这些资源通通唾手可得。但是我不提倡大家幻想着在几个月的时间内就可以从零开始构建一个成功的iPhone应用程序。即使这是可能的,但这并作为一个真正的人生目标,你的人生目标应该是成为一名真正的工程师?!
——Coleman McCormick
对我来说,这些资源都是我的后勤部队。我努力学习,以满足未来潜在的雇主对初级开发人员的要求。反复阅读入门指导,每天按照建议去做,我确定我想成为一名工程师,想去Spatial Networks公司工作。
了解构建产品和编写代码之间的差异
你需要以产品为导向来写代码。如果以降低用户体验的代价来修复bug,那还能为公司带来什么价值?你需要从客户的角度来看问题,看看自己的行为是否能为产品提升价值。如果答案是否定的,那就换其他方法。
打造网上的身份和声誉
什么,你还没有LinkedIn、Twitter或自己的个人网站?那你在无形中肯定错过了很多机会。在当今职场上,没有LinkedIn和Twitter账号,就像工作经历上拥有无法解释的差距一样是值得怀疑的。我也不止一次地听到许多招聘经理表示,对于没有列出LinkedIn或Twitter的简历,他们都是直接扔掉的。
通过打造线上的表现,你可以给你潜在的雇主留下关于你的资质、领域知识和核心竞争力的好印象。
提高软技能
底线:不要做一天和尚撞一天钟。软技能非常重要,千万不要小看它。具体请看《对程序员非常重要的24个软技能》这篇文章,文章中详细说明了软件工程师需要掌握的软技能。
熟悉行业工具
成为所有编程语言或工具的专家是不现实的。然而,你愿意学习新语言的态度和意愿,可能比那个高级的但已经不愿意学习新东西的java程序员,更容易得到这份工作。下面这些技术都是你应该熟悉的。你不必全部下载或全部熟练掌握。但是,你懂得越多,你就越能在面试中完美地分析和回答问题。
给你一个真实的例子:
——面试官:你以前有没有用过HipChat?
——你:虽然我没有用过HipChat,但我很熟悉它,知道它和Slack差不多,而Slack是我常用的。并且我最近正在学习HipChat,所以我觉得,精通HipChat完全没有问题。——面试官:那真是太好了。我们还使用Bitbucket ,并且从你的简历看到,你在代码学校学习,以及制作作品和自由职业的时候使用了GitHub来管理个人项目和家庭作业。你是否能同样胜任Bitbucket呢?
——你:当然。
工具箱
消息
- Slack
- Hipchat
- Skype
- Google Hangouts
终端仿真器
-
Mac
- The default terminal
- iterm2
-
Windows
- cmder
- ConEmu
-
Linux
- Pantheon Terminal
- Terminator
文本编辑器
- Atom
- Sublime Text
- Brackets
- Vim
- Notepad++
代码管理
- GitHub
- Bitbucket
- GitLab
代码部署
- Amazon Web Services
- Heroku
- DigitalOcean
- Docker
值得收藏的资源
学习
- treehouse
- codecademy
- Code School
预备
- codewars
- HackerRank
- LeetCode
掌握
- Pluralsight
- Lynda
- Upcase
探索
- Explore GitHub
- CodePen
前端框架
- Foundation
- Bootstrap
- uikit
- NEAT
- Skeleton
社区
- Stack Overflow
- Hacker News
- r/programming
- Quora
求职
- Hired
- AngelList Jobs
- We Work Remotely
- stackoverflow careers
- GitHub Jobs
结束语
不要害怕,在计算风险之后,做一个明智的冒险,然后努力做到最好。这不会是一条康庄大道,但如果你有毅力有决心有上进心,并且努力工作的话,那么你一定可以面试到你想要的工作。我很庆幸当初我做了这个选择,并且希望你能够像我一样,勇敢地去追寻自己的梦想。加油!
译文链接:http://www.codeceo.com/article/0-coding-to-find-job.html
英文原文:How I Landed a Job as a Junior Software Engineer with Zero Work Experience
翻译作者:码农网 – 小峰