滴滴入职要学位证吗学位证_我如何在没有技术学位或工作经验的情况下找到全职开发人员工作...

滴滴入职要学位证吗学位证

by Charlie Jeppsson

查理·杰普森(Charlie Jeppsson)

我如何在没有技术学位或工作经验的情况下找到全职开发人员工作 (How I landed a full stack developer job without a tech degree or work experience)

Six months ago, I got my first developer job as full stack web developer for a startup. I had no relevant work experience, no tech degree, and not even a year of active coding experience. And yet I managed to land my dream offer, and can today for the first time in my life say that I love my job. Here’s how I did it — the long version.

六个月前,我获得了第一份开发人员工作,是一家初创公司的全栈Web开发人员。 我没有相关的工作经验,没有技术学位,甚至没有一年的编码经验。 然而,我设法实现了自己的梦想,并且今天我能有生以来第一次说我热爱我的工作。 这是我的操作方式-长版。

第1部分:拥抱四分之一寿命危机 (Part 1: Embracing the quarter-life crisis)

About three years ago, I was in the middle of a raging quarter-life crisis. I’d graduated from business school, gotten an attractive investment banking job, and then quit that same job just a few months in after realizing I hated everything about it.

大约三年前,我正处于严重的四分之一寿命危机中。 我毕业于商学院,获得了一份有吸引力的投资银行工作,然后在意识到自己讨厌一切之后短短几个月就辞掉了这份工作。

Completely lost and quite cliché, I went solo traveling for a few months to “find myself”. And although I thought I did, I didn’t. Not enough anyway. But it actually helped me figure out a few things.

我完全迷路了,很陈词滥调,我独自旅行了几个月,以“发现自己”。 尽管我以为我做到了,但我没有。 反正还不够。 但这实际上帮助我弄明白了几件事。

The first thing was that I simply couldn’t keep pursuing a finance career. I just couldn’t see any future scenario where that would make me happy.

第一件事是我根本无法继续追求金融事业。 我只是看不到任何让我感到高兴的未来情况。

The second thing was that backpacking and surfing, although being great and all, wouldn’t help me find that “calling” I was looking for. The only reasonable thing to do seemed like the classic trial-and-error method.

第二件事是背包和冲浪虽然很棒,但是并不能帮助我找到我想要的“打电话”。 唯一合理的事情似乎是经典的反复试验方法。

So when I got back home, I decided to try out a few things that I thought might both make me happy and at the same time provide for some sort of decent living. And trial-and-error it was.

因此,当我回到家中时,我决定尝试一些我认为可能会让我高兴的事情,同时提供一些体面的生活。 反复无常。

First, I thought I’d give writing a serious shot. So I started writing and editing part-time for an online business magazine. It was pretty cool for a while. Working three days a week in a fast-paced editorial office, writing about anything business, finance, tech or sustainability-related.

首先,我以为我会认真写作。 因此,我开始兼职撰写和编辑在线商业杂志。 好一阵子很酷。 每周在快节奏的编辑室工作三天,撰写与商业,金融,技术或可持续性相关的任何文章。

At the same time, I’d heard so much about life as a freelancer while travelling that I thought I’d try it out. So I set up my own firm, and soon enough stumbled upon a few business analyst projects. Being my own boss was of course very exciting at first, and being able to work from literally anywhere was completely new for me.

同时,我在旅行中听到了很多关于自由职业者的生活,以至于我想尝试一下。 因此,我成立了自己的公司,很快就偶然发现了一些业务分析师项目。 首先,成为我自己的老板当然非常令人兴奋,而且能够在几乎任何地方工作对我来说都是全新的。

I went on like this for about eight months, doubling as a writer/editor and a freelancing business analyst. But eventually I started losing interest in the job at the magazine.

我这样工作了大约八个月,是作家/编辑和自由职业者业务分析师的两倍。 但是最终我开始对杂志上的工作失去兴趣。

As any sane person dealing with digital content will know, clickbait cultures come at the expense of creativity and quality. In other words, when the main incentive of your content is clicks, all the superlatives required to hunt down those clicks will soon wear down on any creative ambitions that were there in the first place. Besides, I couldn’t shake the feeling that as a writer/editor, I was always too far away from the action I was reporting on.

任何处理数字内容的理智的人都会知道,点击诱饵文化是以牺牲创造力和质量为代价的。 换句话说,当您的内容的主要动机是点击时,寻找这些点击所需的所有最高级条件都会很快削弱最初存在的所有创意野心。 此外,我不能动摇作为作家/编辑的感觉,我离所报道的动作总是太远了。

So I quit. Which was ok according to my trial-and-error deal with myself. But it still felt crappy, since I’d actually invested eight months into the whole writing thing. But as someone smart may or may not have said: when one door closes, another one opens.

所以我退出了。 根据我对自己的反复试验,这还可以。 但这仍然让人感到cr脚,因为我实际上已经花了八个月的时间来撰写整个写作。 但是,正如一个聪明的人可能说过或没有说过:一扇门关闭时,另一扇门打开。

And I still had one more thing on my trial-and-error list to check off.

我的反复试验清单上还有一件事需要检查。

第2部分:午餐改变了我的生活 (Part 2: The lunch that changed my life)

Life is weird, and sometimes it will hide the biggest, most life-changing inspirations in the places you’d least expect. It was certainly like that for me when I experienced my first “pull” towards coding.

生活很奇怪,有时它会在您最不希望看到的地方隐藏着最大,改变生活的最大灵感。 当我第一次体验编码的“拉动”时,对我来说肯定是这样。

Although quitting the job at the magazine felt like a failure, the experience would prove to not have been completely in vain after all. After writing so much about tech startups and the exciting lives of entrepreneurs, I was dead set on giving that lifestyle a shot as well.

尽管在杂志上辞职感觉像是一次失败,但事实证明这种经历并非徒劳。 在写了很多关于科技初创公司和企业家令人兴奋的生活的文章之后,我也沉迷于尝试这种生活方式。

And after about a month of research and job hunting, I managed to land a job at one of the then — supposedly — most promising FinTech companies in the Nordics. In just a few years, it had grown to become one of Europe’s biggest equity crowdfunding platforms.

经过大约一个月的研究和找工作,我设法在当时北欧最有前途的金融科技公司之一找到了工作。 在短短几年内,它已经发展成为欧洲最大的股权众筹平台之一。

I hadn’t really applied to any specific job opening. But since I really believed in the company’s mission, and was impressed by their success, I’d rather just gotten in touch with their CFO telling him just that. We met a couple of times, and all of a sudden I was working there in some quite fuzzy business development role.

我还没有真正申请任何特定的职位空缺。 但是由于我真的相信公司的使命,并且对他们的成功印象深刻,所以我宁愿与他们的CFO保持联系,也只是告诉他。 我们见过几次面,突然间我在那儿担任一些相当模糊的业务开发角色。

Although I’d hoped to get to work on strategic and analytical projects, I ended up doing what fuzzy business developers usually end up doing: selling. Which was also why this job too didn’t work out in the end.

尽管我希望能够从事战略和分析项目,但最终还是做了模糊的业务开发人员通常会做的事情:销售。 这也是为什么这项工作最终也没有完成的原因。

But, there’s more.

但是,还有更多。

Just like the last job experience from the magazine, this job would also prove to not have been all in vain. In fact, without it, I’d probably not be a developer today. Because that’s where I met Sandra.

就像该杂志最近的工作经历一样,这份工作也不会徒劳。 实际上,如果没有它,我今天可能不会成为开发人员。 因为那是我遇见Sandra的地方。

She was a front-end developer in the product team, sitting just on the other end of the tiny coworking office we were cramped in at the time.

她是产品团队的前端开发人员,只不过在我们当时局促的小型联合办公室的另一端。

Technically we were colleagues, but as anyone whose worked in a dysfunctional tech company will know, the distance from the sales team to the product team can often feel like galaxies apart.

从技术上讲,我们是同事,但正如在功能失调的科技公司工作的任何人都知道的那样,从销售团队到产品团队的距离常常感觉像是星系分开。

It didn’t help that management had just decided to outsource the whole dev team to a remote team in Ukraine either. Meaning Sandra and all the other developers would be let go and were more or less just serving their two months notice.

管理层刚刚决定将整个开发团队外包给乌克兰的远程团队也无济于事。 这意味着Sandra和所有其他开发人员将被放任,或多或少只是在为他们提供两个月的通知。

Despite this distance, one day Sandra and I ended up having lunch together. It would basically be my first real conversation with a professional developer, and I think it was a mix of genuine curiosity and my accelerating existential crisis that quickly more or less turned the lunch into an interview.

尽管距离这么远,但有一天我和桑德拉还是一起吃了午饭。 基本上,这是我第一次与专业开发人员进行真正的交谈,我认为这是真诚的好奇心与我不断加剧的生存危机的结合,很快或多或少地将午餐变成了采访。

And our lunch ended up being a totally life-changing experience for me. More specifically, three revelations made it so.

我们的午餐对我来说是完全改变生活的经历。 更具体地说, 三个启示使之成为现实。

  1. I was shocked to learn that she had no “real” education in web development, which for me at the time would equal nothing short of an academic degree. Everything she knew, she’d learned from MOOC platforms (Massive Open Online Courses), like freeCodeCamp and Codecademy.

    令我震惊的是,她没有在网络开发中接受过“真正的”教育,对我而言,这对我而言相当于一个学位。 她所知道的一切都是从MOOC平台(大规模开放在线课程)中学到的,例如freeCodeCamp和Codecademy。
  2. She told me she had a background in finance, just like me. In fact, she had been working as a business controller for several years until just recently, when she’d joined the same startup as I had, just a few months earlier as a front-end intern.

    她告诉我,和我一样,她有金融背景。 实际上,她一直担任业务主管已经有好几年了,直到最近,当她和我加入同一家初创公司时,就在几个月前担任前端实习生。
  3. When she showed me the portfolio page she’d built with just some six months of coding experience, I couldn’t believe it. It was incredible.

    当她向我展示她仅用六个月的编码经验而建立的投资组合页面时,我简直不敢相信。 实在太棒了。

That lunch opened up a world of possibilities for me. Sandra’s story made me hungry for more.

那顿午餐为我打开了无限的可能。 桑德拉的故事使我渴望更多。

So for weeks I researched the different types of paths that people had taken to become developers. I ended up in all sorts of forums and articles, many of which I found right here on Medium.

因此,数周以来,我研究了人们成为开发人员所采用的不同类型的途径。 我结束了各种论坛和文章,其中许多都是在Medium上找到的。

For example, Stackoverflow’s annual developer survey (100,000 interviewees) stated that only half of all professional developers had a bachelor’s degree, and of this half, a whole third majored in something completely unrelated to computer science and software engineering.

例如, Stackoverflow的年度开发人员调查 (100,000名受访者)表示,所有专业开发人员中只有一半拥有学士学位,而在另一半中,有三分之一的人主修与计算机科学和软件工程完全无关的专业。

The more I read, the more I realized how narrow my definition of education had been. If you didn’t need a computer science degree to break into something as complex as software engineering, what did you need an academic degree for? Although I might not have been able to see it then, I now clearly see how broken the academic system is.

我读得越多,就越意识到我对教育的定义有多狭窄。 如果你并不需要一个计算机科学学位闯入东西一样复杂的软件工程, 你需要一个学位呢? 尽管那时我可能看不到它,但是现在我清楚地看到了学术体系的残缺程度。

It was designed for the industrial age of workers, where you’d specialize in one craft, and then use those same skills for the rest of your life. It was certainly not designed for today’s knowledge society, where all information of the history of the world is never more than a few clicks away, and where things change so fast that education must in fact be a life-long process, and not the learn-once-use-forever one-off experience.

它是为工人的工业时代设计的,您需要专门研究一种手Craft.io品,然后在余生中使用相同的技能。 它当然不是为当今的知识社会而设计的,在当今的知识社会中,世界历史的所有信息都只需要点击几下,并且事情变化如此之快,以至于教育实际上必须是一生的过程,而不是学习的过程。 -永远使用一次的体验。

But that’s a topic big enough for an article by itself. The important thing about that lunch with Sandra was that it ignited something in me, and motivated me to break free from the destructive loop that I found my current half-assed business career to be.

但这对于单独撰写文章来说已经足够大了。 与桑德拉共进午餐的重要之处在于,它点燃了我的内心世界,并激励我摆脱了破坏性循环,而这种破坏性循环使我发现自己目前的半衰半衰。

Although I’d always envied programmers around me — even to the extent that I’d taken a Python 101 summer course a few years earlier — I’d never considered it a viable career path for me. At least not without going back to university for 3 — 5 years.

尽管我一直都羡慕我周围的程序员,即使几年前我选修了Python 101暑期课程,但我从未认为这对我来说是一条可行的职业道路。 至少不是没有回到大学3到5年。

So if you’re reading this Sandra, thank you! If I with this article can inspire just one person the way you inspired me, I’d consider the effort of writing it repaid a thousand times.

因此,如果您正在阅读本桑德拉,谢谢! 如果我的这篇文章能够像您启发我的方式一样激发一个人的灵感,那么我将考虑将它写成一千本的努力。

第3部分:花费了我6,000美元的文字 (Part 3: The text that cost me $6,000)

Over the next few months I spent hundreds of hours on online platforms like Codecademy and freeCodeCamp. I even purchased a subscription to the paid platform Code School.

在接下来的几个月中,我在CodecademyfreeCodeCamp等在线平台上花费了数百小时。 我什至购买了付费学校Code School的订阅。

I’m not sure I really knew what my goal was. What got me started was the desperation of my recurring career disappointments. But what kept me going was how ridiculously fun and rewarding I found the coding exercises to be.

我不确定我是否真的知道我的目标是什么。 让我开始的是我对职业生涯反复失望的绝望。 但是让我继续前进的是,我发现编码练习是如此有趣和可笑。

I couldn’t even tell you at what point the coding turned from a casual side project, to the dead-serious “I’m going to be a professional developer.” But it was probably somewhere around here. I was just about to receive my front-end certificate from freeCodeCamp, when my next life-changing event occurred.

我什至无法告诉您编码从一个偶然的项目变成了严肃的“我将成为一个专业的开发人员”这一点。 但这可能在这里附近。 下一次改变生活的事件发生时,我正要从freeCodeCamp接收前端证书。

After quitting my job as a business developer, I’d decided to escape the freezing limbo that is Swedish winter to go travel in Central America. I reckoned that if I was gonna spend hundreds of hours alone, teaching myself coding, I might as well do it somewhere warm, cheap, and not depressing.

辞掉业务开发人员的工作后,我决定逃避瑞典的寒冬,去中美洲旅行。 我认为,如果我一个人要花数百个小时来教自己编码,那么我不妨在温暖,便宜且不压抑的地方做。

I was coding on my laptop in a hostel in El Salvador, when I got a text from my friend Marie.

当我从朋友玛丽收到短信时,我正在萨尔瓦多一家旅馆的笔记本电脑上编码。

“I got the job!” it said.

“我得到了这份工作!” 它说。

Marie was also learning how to code. I recalled how she, a few months earlier, had been telling me about this code school she went to. A “coding bootcamp.”

玛丽还在学习编码。 我回想起几个月前她是如何告诉我她去的这所密码学校的 。 “编码训练营”。

At the time I’d basically mocked her for it — So. You’re gonna pay $5,000 for a 12 week course? And you’re not receiving a single university credit for it? And you dropped out of your top-tier MBA to do this? Sounds legit.

当时我基本上是为她嘲笑-所以。 您要为一个12周的课程支付5,000美元吗? 而且您没有获得任何大学学分吗? 然后您退出了顶级MBA来完成这项工作? 听起来像是对的。

And yet there she was. Four months later, and Marie was officially employed by one of Accenture’s digital agencies as a junior back-end developer. I was really happy for her, but of course also extremely jealous.

然而她在那里。 四个月后,Marie被埃森哲的一家数字代理商正式聘为初级后端开发人员。 我真的为她感到高兴,但当然也非常嫉妒。

I stopped what I was doing and made some calculations. If I could keep up my current pace, coding some 6 hours per day on average, about 5 days a week, I would do 30 hours per week. So to finish freeCodeCamp’s full 1,200 hour program, it would take me at least 8 more months. And that’s if I could keep up the pace. Which I definitely couldn’t, since my money was running out and I would have to go back to Sweden and get a new job soon.

我停止了正在做的事情,并进行了一些计算。 如果我能保持目前的速度,每周平均大约5天,每天平均大约6个小时,那么我每周应该工作30个小时。 因此,要完成freeCodeCamp的完整1200小时计划,我至少还要花8个月的时间。 这就是如果我能跟上步伐。 我绝对不能,因为我的钱快用光了,我将不得不回到瑞典并很快找到一份新工作。

I kicked myself for not having taken the same road as Marie from the start, and spent my money on a bootcamp instead of backpacking for 4 months. Well, what’s done is done, I thought to myself. I’d still have to accept the fact that a bootcamp was the best option to reach an employable level fast enough.

我踢自己是因为从一开始就没有走过和Marie一样的道路,所以花了我的钱去了一个训练营,而不是花了四个月的背包时间。 好吧,已经完成了,我心想。 我仍然不得不接受一个事实,即训练营是足够快地达到可用水平的最佳选择。

Back to good old Google research.

回到旧的Google研究。

In a way, I felt like I was right back where I started after that lunch with Sandra. Only this time, I looked at the whole bootcamp phenomenon with a fresh pair of eyes. Knowing Marie’s story, I knew that not all of them were too-good-to-be-true scams, but actually plausible ways to break into the industry.

从某种意义上说,我觉得自己回到了与桑德拉共进午餐后的起点。 只是这次,我用一双新鲜的眼睛看着整个训练营现象。 了解Marie的故事后,我知道并非所有这些骗局都不是真正的骗局,但实际上是进入该行业的合理途径。

Later on, Stackoverflow’s annual developer survey again reassured me with the stats that 88.1% of coding bootcamp alumni had been hired within a year after finishing the bootcamp.

后来, Stackoverflow的年度开发人员调查再次使我放心,因为统计数据表明,在完成训练营后的一年内,有88.1%的编码训练营校友被雇用。

Thanks to Switchup and Coursereport, it didn’t take long until I discovered Le Wagon, the French coding bootcamp startup success story with more than 15 locations all around the world and top 5 ratings on both rankings (at the time of writing, actually #1 on both, with 27 locations!).

多亏了SwitchupCoursereport ,才不久,我发现了Le Wagon ,这是一家法国编码训练 营的初创企业成功案例,在全球拥有15个以上的地点,并且在两个排名中均排名前5位(在撰写本文时,实际上是#两者都包含1个,有27个位置!)。

After comparing it with alternatives like Hack Reactor, Ironhack, General Assembly, and NYCDA, a few main reasons made me prefer it over the others:

在将其与Hack Reactor,Ironhack,General Assembly和NYCDA之类的替代品进行比较之后,有几个主要原因使我比其他人更喜欢它:

  • The relatively low price (back then $6,000).

    相对较低的价格(当时为6,000美元)。
  • The focus on entrepreneurship and product development.

    专注于企业家精神和产品开发。
  • The global presence and community.

    全球影响力和社区。

Nevertheless, I still had a few doubts about the program.

尽管如此,我对该程序还是有一些疑问。

  1. The choice of the backend language Ruby and the MVC framework Rails. Although it appeared like this was pretty common among other recognized bootcamps, almost every article I read on the subject suggested that Javascript was really hot and what employers were looking for. My friend Marie’s bootcamp, for instance, taught a backend stack based on Node.js and Express.js. Both Javascript-based technologies. Some common arguments seemed to be that Ruby was a great language for learning, but that Node and Express were skills employers valued a lot higher. Was Ruby really the horse to bet on?

    后端语言Ruby和MVC框架Rails的选择。 尽管看起来在其他公认的训练营中这很普遍,但是我阅读的有关该主题的几乎每篇文章都表明Javascript 确实很热门,也是雇主正在寻找的东西。 例如,我的朋友玛丽(Marie)的训练营讲授了基于Node.js和Express.js的后端堆栈。 两种基于Java的技术。 一些常见的论点似乎是Ruby是一种很棒的学习语言,但是Node和Express是雇主所看重的技能。 露比真的是要赌的马吗?

  2. The 9-week duration of the course seemed a bit short. Most competing programs appeared to be at least 12 weeks, which already seemed way too short to become an employable web developer.

    课程的9周时间似乎有点短。 大多数竞争程序似乎至少需要12周的时间,这似乎已经太短了,无法成为可雇用的Web开发人员。
  3. Le Wagon offered no actual job hunting assistance after completing the bootcamp. Many competitors offered either employment guarantees or seemingly solid career services functions.

    训练营结束后,Le Wagon没有提供任何实际的求职帮助。 许多竞争对手提供就业保障或看似坚实的职业服务职能。

I’ll address each of these three doubts one by one with my post-bootcamp conclusions at the end of the next section.

在下一节的结尾,我将在训练营结束后的结论中逐一解决这三个疑问。

However, despite my concerns I figured it was my best option, which is why I decided to apply to their school in Barcelona. A few days later the local school manager Gus reached out to me for a Skype interview.

但是,尽管有担心,我还是认为这是我最好的选择,这就是为什么我决定申请巴塞罗那的他们的学校。 几天后,当地学校经理Gus与我联系,接受Skype采访。

Hooked up to a crappy Wi-Fi at a café in the lazy surftown of El Tunco we had a brief chat. But it was a lot more informal than I’d expected. I felt we connected, which made me want to get admitted even more. And then, not even 24 hours later, I got the email I’d been waiting for. Gus told me he would be pleased to have me in the next batch, and that the only thing I had to do next was pay the $1,200 deposit to reserve my place.

在El Tunco冲浪镇的一家咖啡馆连接了糟糕的Wi-Fi,我们进行了简短的聊天。 但这比我预期的要非正式得多。 我觉得我们联系在一起,这使我想得到更多的接纳。 然后,甚至在24小时后,我也收到了一直在等待的电子邮件。 古斯告诉我,他很高兴有我参加下一批比赛,接下来我唯一要做的就是支付1200美元的押金以保留我的位置。

That was basically all the money I had left at the time, and it was supposed to pay for my last weeks in El Salvador — including the eventual trip home. But if I could just manage to stick to a tighter budget, and book an earlier flight home than expected, I knew I could make it.

那基本上是我当时剩下的全部钱,应该用来支付我在萨尔瓦多的最后几个星期的费用,包括最后的回国旅行。 但是,如果我能够坚持较低的预算,并预订比预期更早的航班回家,我知道我可以做到。

So, after a brief moment of hesitation, and recalling the concerns I still held for Le Wagon, I acted on intuition, and transferred Gus the deposit. Afterwards, I remember feeling a bit awkward. Had I really just committed to paying almost $6,000 for a 9-week coding course? As a Swede, who’s never ever paid a single cent for education, the situation felt quite bizarre.

因此,在短暂的犹豫之后,回想起我仍然对Le Wagon所担心的问题,我凭直觉采取了行动,并将Gus的保证金移交给了我。 之后,我记得有点尴尬。 我真的真的承诺要花近6,000美元购买一个为期9周的编码课程吗? 作为从未支付过一分钱教育费用的瑞典人,这种情况感觉很奇怪。

However, it didn’t take long until that bizarre feeling turned into excitement. At least now I knew I wouldn’t have to go back to working in finance, sales, or online media in any near future. The same day, I started making arrangements for the time up until the bootcamp.

然而,不久之后那种奇怪的感觉变成了兴奋。 至少现在我知道,在不久的将来,我不必回到财务,销售或在线媒体上工作。 那天,我开始安排直到训练营的时间。

In the three months left, I would somehow have to earn the remaining $4,800 of the fee. Plus rent and living expenses. Well sh*t.

在剩下的三个月中,我将不得不以其他方式赚取剩余的4,800美元费用。 加上房租和生活费。 好吧。

I reached out to one of the companies that I’d previously consulted for, and luckily enough they had the perfect business analyst project coming up. Since they initially wouldn’t accept anything less than a 4-month contract, I had to convince them I could do the job in two. Somehow, it worked.

我联系了我之前咨询过的公司之一,幸运的是,他们提出了完美的业务分析师项目。 由于他们最初只接受4个月的合同,因此我不得不说服他们我可以将工作分两次完成。 不知何故,它奏效了。

Phew! Just one week earlier, I’d been a runaway traveler without a thought of ever going home. Now, I was to start my new two-month gig in Stockholm in less than two weeks, and then move to Barcelona. Exciting things ahead indeed.

! 就在一周前,我是一个失控的旅行者,却丝毫没有回家的念头。 现在,我要在不到两个星期的时间内在斯德哥尔摩开始新的为期两个月的演出,然后搬到巴塞罗那。 确实令人振奋。

第4部分:巴塞罗那的Bootcamp (Part 4: Bootcamp in Barcelona)

Fast-forward three months.. It’s the 1st of May 2017, and I’m in a classroom attending my first Le Wagon lecture.

快进了三个月。这是2017年5月1日,我在教室里参加我的第一次Le Wagon演讲。

Around me are some 25 people from all corners of the world. Kilian from Germany, Daniel from Venezuela, Francesca from France, Arbi from Italy, Courtney from the US, and so on. Some with no coding experience at all, some with a little, and a few actually halfway to getting their computer science degrees.

我周围有来自世界各个角落的25个人。 德国的Kilian,委内瑞拉的Daniel,法国的Francesca,意大利的Arbi,美国的Courtney等。 有些人根本没有编码经验,有些人只有一点点,还有一些实际上只是获得计算机科学学位的一半。

We’re listening to Gus, the local school manager, and Ruben, a Ruby teacher, explaining the structure of the program ahead.

我们正在听当地学校的校长Gus和Ruby老师Ruben讲解未来计划的结构。

As we all would come to learn, the schedule was very systematic. Over the coming 9 weeks, we would spend more or less an equal amount of time on 6 different modules, each dealing with a topic of its own, finishing up with two weeks spent on planning and developing our very own web app.

正如大家都将要学习的那样,日程安排是非常系统的。 在接下来的9周中,我们将在6个不同的模块上花费或多或少的时间,每个模块都处理各自的主题,最后花了两个星期来计划和开发我们自己的Web应用程序。

For the whole first week, I remember feeling quite confident about the course content. After all those hundreds of hours on freeCodeCamp, the difficulty level of the daily coding challenges seemed a bit low.

在整个第一周里,我记得对课程内容感到很自信。 在freeCodeCamp上花费了数百个小时之后,日常编码挑战的难度似乎有点低。

Although Ruby was still pretty new to me, the basics seemed to be pretty much the same as with Javascript and Python. Listening to lectures and doing exercises to learn about variables, arrays, hashes, basic functions, and iterations felt quite repetitive. So I got cocky, and wondered if I’d actually get anything out of this bootcamp thing. However, not even a week later, all that would change. I went from feeling like the top of the class to actually struggling to keep up.

尽管Ruby对我来说还很陌生,但其基础似乎与Javascript和Python几乎相同。 听讲座并做练习以了解变量,数组,哈希,基本函数和迭代是相当重复的。 所以我很自大,想知道我是否真的可以从这个训练营中得到任何东西。 但是,甚至在一星期后,一切都会改变。 我从感觉像一流的学生,到实际上一直在努力跟上。

Before I knew it, we were moving on from the basics to object-oriented programming, MVC architectures, and databases, and there were plenty of days when I felt I hadn’t even understood the concepts of the day before, and was already expected to move on to the next topic.

在不知不觉中,我们就从基础知识转向了面向对象的编程,MVC体系结构和数据库,而且有很多天我觉得我什至不了解前一天的概念,并且已经预料到了进入下一个主题。

So I had to put in the next gear. 10 hours a day in the classroom wouldn’t cut it for me. I made it a routine to put in a few extra hours each night, and spend most of the weekends repeating the trickiest stuff from the past week. It sucked a bit to not be able to enjoy Barcelona as much as I had the first few weeks, but the fact that I’d invested all my savings into the bootcamp was a big motivation.

所以我不得不放下一个齿轮。 每天在教室里呆10个小时对我来说算不上什么。 我把每天晚上多花几个小时作为惯例,并花大部分周末重复过去一周中最棘手的事情。 不能像我最初的几周那样享受巴塞罗那的经历让我感到有些难过,但是我将所有积蓄都投入到训练营中的事实是一个很大的动机。

Another source of frustration was the scattered nature of the things we were learning. It felt like we’d been given a hundred puzzle pieces, but no instructions of how to put them all together. Knowing how to write basic Ruby, HTML, CSS, Javascript and SQL was really empowering, but how would that knowledge help me put together an actual app?

沮丧的另一个原因是我们正在学习的事物的分散性质。 感觉好像我们得到了一百个拼图,但没有说明如何将它们全部组合在一起。 知道如何编写基本的Ruby,HTML,CSS,Javascript和SQL确实可以增强功能,但是这些知识将如何帮助我组合一个实际的应用程序?

And then came my big AHA moment.

然后是我的重要AHA时刻。

It was week 6 and we’d finally reached the Ruby on Rails module. Before I knew it I was looking at my Chrome browser window and reading the words “Yay! You’re on Rails!”. That was my first web app, the teacher said.

到了第六周,我们终于到达了Ruby on Rails模块。 在不知不觉中,我正在看我的Chrome浏览器窗口,读着“是的! 你在铁轨上!”。 老师说,那是我的第一个网络应用程序。

What? All I’d done was run a few simple commands in my terminal and surfed onto http://localhost:3000/ in my browser. What was I even looking at?

什么? 我要做的就是在终端中运行一些简单的命令,然后在浏览器中浏览到http:// localhost:3000 / 。 我什至在看什么?

I wasn’t until I opened up the app directory in the text editor that that big sweet understanding fell into place. Rails displayed it all so beautifully simply.

直到我在文本编辑器中打开应用程序目录时,那种深刻的理解才得以体现。 Rails如此简单地展示了这一切。

One folder for the HTML, one for the CSS and Javascript, one for the controllers, and one for the models. One file for the routes. And one file for that sweet, sweet schema, mapping out the entire database like it wasn’t more complex than a grocery shopping list.

HTML的一个文件夹,CSS和Javascript的一个文件夹,控制器的一个文件夹,模型的一个文件夹。 路线的一个文件。 还有一个文件用于那种甜蜜的甜蜜模式,映射出整个数据库就像没有杂货店购物清单那样复杂。

After finally getting the big picture of how all those pieces would practically fit together in an MVC framework like Rails, spending all my nights and weekends coding was not much of a struggle anymore. Quite oppositely, I would often struggle to get off my laptop to go to bed at night.

在最终了解了所有这些部分如何在Rails这样的MVC框架中实际组合在一起的全景图之后,花了整夜的时间和周末进行编码已不再是一件费劲的事。 恰恰相反,我经常会很难下床在晚上睡觉。

I was on a roll, getting massive new insights every single day. And it gave this intoxicating effect that’s still kind of hard to put down in words.

我一路走来,每天都获得大量新见解。 而且,这种令人陶醉的效果仍然很难用言语表达出来。

  • So I can actually mix HTML and Ruby in my erb files?

    因此,实际上我可以在erb文件中混合使用HTML和Ruby吗?
  • I can access instance variables from the controller in the associated html.erb file?

    我可以在关联的html.erb文件中从控制器访问实例变量吗?
  • I can import code that other people wrote using this thing called Gems?

    我可以导入别人用这个叫做Gems的东西编写的代码吗?
  • I can write as much vanilla JavaScript as I want in the assets/javascript directory?

    我可以在assets / javascript目录中编写尽可能多的原始JavaScript吗?
  • I can use the Rails console in the terminal to basically do whatever I want with the entire database?

    我可以使用终端中的Rails控制台来对整个数据库做我想做的事吗?

It was just a never-ending stream of incredibly satisfying Aha moments. Like you’d just realized the force was actually strong with you, and that you got one step closer to go full Jedi with each piece of new knowledge. Even now, nine months later, it feels like I’m still on that same high, and I’m starting to think it actually might be something permanent. How lovely that would be.

这只是令人难以置信的令人满意的Aha时刻的源源不断。 就像您刚刚意识到力量实际上对您强大,并且您将一步一步地将每一项新知识带入完整的《绝地武士》。 即使在九个月后的现在,感觉就像我仍处在同一高峰,我开始认为它实际上可能是永久的。 那将是多么可爱。

Anyhow, the bootcamp train wasn’t slowing down, and soon enough we’d reached the last two weeks, when we were supposed to build our own app. The two weeks would end with a big Demo Day, where each group would pitch and demo their apps in front of cameras and a big audience.

无论如何,训练营的火车并没有减慢速度,很快我们就到达了最后两周,当时我们应该构建自己的应用程序。 这两个星期将以大型演示日结束,届时每个小组将在相机和大量观众面前宣传和演示他们的应用。

Pressure.

压力。

To our surprise, the planning turned out to be the most time-consuming part by far. Although we prepared a lot in the past few weeks — pitching app ideas, forming groups, designing features in Sketch — it wasn’t until after a few days of coding that we realized we’d been way too ambitious.

令我们惊讶的是,规划是迄今为止最耗时的部分。 尽管在过去的几周中我们做了很多准备工作-提出应用想法,组建团队,设计Sketch中的功能-直到经过几天的编码后,我们才意识到自己的野心太大了。

The initial idea for the app was sort of the “Happn for professional connections.” More specifically, letting users create pages for networking events that other users could attend and check in to. “But that’s Meetup,” you might be thinking. But our idea had a twist: you could only check in to an event if you were physically at the event location. Thus the “Happn for professional connections.”

该应用程序的最初想法是“为专业联系而生”。 更具体地说,让用户为其他用户可以参加并签入的网络活动创建页面。 “但是那是聚会”,您可能在想。 但是我们的想法有所不同:您只能亲自参加活动地点才能签到活动。 因此就是“发生专业联系”。

Once checked in at an event, a user would be able to see the professional profiles of other checked in users, using data gathered through LinkedIn’s API, and connect and chat with the ones who matched their interests, thus not missing out on potentially great connections.

一旦在事件中签到,用户将能够使用通过LinkedIn API收集的数据查看其他签到用户的专业资料,并与感兴趣的用户进行联系和聊天,从而不会错过潜在的良好联系。

This was our initial MVP (minimum viable product) and we decided to call it Unify. Super corny and Silicon Valley wannabe, I know. But in our defence, we had better things to to with our time than think of better names.

这是我们最初的MVP(最低可行产品),因此我们决定将其称为统一。 我知道,超级老土和硅谷想成为。 但是在国防方面,与思考更好的名字相比,我们有更多的时间要做。

Like brainstorming about the actual features. But then we actually brainstormed a bit too much, and features were added and removed until we ended up with a completely different app that,

就像集思广益讨论实际功能一样。 但是后来我们实际上集思广益,于是添加和删除了功能,直到最终开发出了一个完全不同的应用程序,

  1. would never be demo-ready within the remaining ten days, and

    在剩下的十天内永远不会演示,并且
  2. wasn’t nearly as disruptive as we thought our first idea was.

    并没有我们最初想到的那么具有破坏性。

So we had to narrow down the features to the MVP, and actually ended up with almost exactly the same product that the Le Wagon manager Gus had recommended that we go with from the start.

因此,我们不得不将功能缩小到MVP,实际上最终获得了与Le Wagon经理Gus从一开始就建议我们使用的产品几乎完全相同的产品。

Big waste of time, was what we thought then. But the process at least taught me a few really important things about product development:

那是我们当时的想法,这是在浪费大量时间。 但是该过程至少教会了我一些有关产品开发的重要知识:

  • When done right, it should be a whole lot more about planning than actual coding.

    如果做得正确,与实际编码相比,规划应该有更多的内容。
  • Having to clean up old code mistakes is a lot more time-consuming than planning thoroughly and doing things right from the start.

    与彻底规划和从一开始就做事相比,必须清理旧的代码错误要花很多时间。
  • The MVP is always smaller than you’d think from the start.

    MVP总是比您一开始就想的要小。

Some ten days later, after more than 100 hours of coding, designing, arguing, testing, database migrations and database rollbacks, we’d somehow miraculously reached the Demo Day and actually felt pretty good about our app. Sure, it was far from perfect, but all the main features were actually working like we wanted them to.

大约十天后,经过100多个小时的编码,设计,争论,测试,数据库迁移和数据库回滚,我们奇迹般地到达了演示日,实际上对我们的应用程序感觉很好。 当然,这还远未达到完美,但是所有主要功能实际上都按我们希望的方式工作。

However, just a few hours before the demo, we’d all nearly have a heart attack.

但是,在演示开始前几个小时,我们几乎都心脏病发作了。

Google’s geolocation API wasn’t responding as it should to our requests, so we couldn’t check in to the event that we would use for the demo. We tried everything. Switching computers and users. Deleting and creating new events. Changing the event street address. Nothing worked.

Google的地理定位API并未响应我们的请求,因此我们无法检查将用于演示的事件。 我们尝试了一切。 切换计算机和用户。 删除和创建新事件。 更改活动街道地址。 没事。

The three of us tried to stay calm and not panic. It was probably just a bug the guy responsible for the geolocation feature would know how to solve easily.

我们三个人试图保持镇定,不要慌张。 负责地理定位功能的人可能只是知道会很容易解决的一个错误。

But he was running late, so we tried calling him.

但是他来晚了,所以我们尝试给他打电话。

No answer.

没有答案。

We tried calling again.

我们尝试再次致电。

No answer, again.

再没有答案。

And then we panicked.

然后我们惊慌失措。

Not until the last minute, thanks to one of our amazing teaching assistants, Antoine, we managed to find the bug. Turns out we’d accidentally set the distance range too low, which was why the app couldn’t confirm that we were actually at the event location. We simply increased the radius by a few kilometers, committed, and pushed the change to our production server.

直到最后一刻,多亏了我们出色的助教之一Antoine ,我们设法找到了bug。 原来我们不小心将距离范围设置得太小,这就是为什么应用无法确认我们实际上在活动地点的原因。 我们只是简单地将半径增加了几公里,然后提交更改,并将更改推送到生产服务器。

And voilà — the app worked perfectly. And so did the demo.

而且,该应用程序运行完美。 演示也是如此。

Overall, my Le Wagon experience was nothing short of amazing. I’ve probably never learnt so much in such a short time. In hindsight, it’s actually hard to believe that most of us were able to develop full-featured web apps with basically just 9 weeks of development experience.

总的来说我在Le Wagon的经历简直令人赞叹。 我可能在这么短的时间内从未学到太多。 事后看来,实际上很难相信我们大多数人仅用9周的开发经验就能开发功能齐全的Web应用程序。

But don’t fool yourself, the bootcamp will not do the work for you. To get anything out of it, you’ll have to give it your full commitment. I myself saw plenty of people fall behind or even drop out because they

但是请不要自欺欺人,新手训练营不会为您完成工作。 为了从中获得任何收益,您必须全力以赴。 我本人看到很多人落伍甚至退学,因为他们

  • didn’t have the right expectations of the difficulty level,

    对困难程度没有正确的期望,
  • weren’t prepared enough, or

    准备不足,或者
  • were too busy with other things to keep up.

    太忙于其他事情而无法跟上。

On a final note, a mistake I think many rookies make is to consider a computer science degree a substitute to self-learning or a bootcamp, as a means of becoming a web and/or mobile developer. Based on my experiences, this is not accurate.

最后,我认为许多新手都会犯的一个错误是,将计算机科学学位视为自学或训练营的替代品,以此作为成为Web和/或移动开发人员的一种手段。 根据我的经验,这是不准确的。

Even if you’re pursuing a computer science degree, you’ll still need to fill in a ton of practical knowledge gaps to become productive. I practically saw this first hand in my bootcamp classmates with 2 — 3 years of CS studies behind them. Again, that’s because the academic model is broken and outdated, and hence can’t keep up with the extreme pace with which real-world software development is changing.

即使您正在攻读计算机科学学位,您仍然需要填补大量的实践知识空白才能提高工作效率。 我几乎在训练营的同学中亲眼目睹了这第一手资料,他们身后有2至3年的CS研究。 同样,这是因为学术模型已经过时和过时,因此无法跟上实际软件开发变化的极端速度。

From my point of view, if the goal is to become a developer, self-learning or a bootcamp will at some point be necessary either way. So a computer science degree should be perceived as a complement rather than a substitute.

从我的角度来看,如果目标是成为一名开发人员,则无论哪种方式在某个时候都需要自学或进行训练。 因此,计算机科学学位应被视为补充而非替代

And the reason why a (good) bootcamp can turn you into a developer faster than self-learning, is the combination of the following:

(良好的)新手训练营可以比自学更快地将您转变为开发人员的原因是以下几点:

  • a thorough but concise curriculum,

    全面而简洁的课程
  • a seamless online platform with tutorials and exercises, and most importantly;

    一个无缝的在线平台,其中包含教程和练习,最重要的是;
  • the on-call support of a human when you hit a wall.

    当您碰壁时,可以随时获得人类的即时支持。

To conclude this section, I’d like to address the three concerns I had before committing to the bootcamp with the insights I’ve gained since then.

总结本节,我想用从那时起获得的见解来解决我在进入训练营之前的三个问题。

1.学习Ruby on Rails而不是基于JavaScript的堆栈 (1. Learning Ruby on Rails instead of a JavaScript-based stack)

If you’re currently in the position I was in before joining my Rails bootcamp, overwhelmed by all the JavaScript hype flooding the Internet, you might ask yourself if Ruby is a dated language, and if Rails is a dated framework. If this is the case my short answer would be no.

如果您目前处于加入Rails训练营之前的位置,并且被Internet上所有JavaScript炒作所淹没,那么您可能会问自己Ruby是否是一种过时的语言,以及Rails是否是一种过时的框架。 如果是这种情况,我的简短回答是“否”。

The long answer, however, would be this.

但是,长答案是这样的。

The company I’m working at now has a high-traffic web app built with Rails on the backend, and the Ember.js frontend framework on the front. Having worked full-time with this app for about six months now has required just as much coding in Javascript from me as in Ruby, which has brought me some insight into the differences and similarities between the technologies.

我现在正在工作的公司拥有一个高流量的Web应用程序,该应用程序在后端使用Rails构建,在前端使用Ember.js前端框架。 与这个应用程序全职工作了大约六个月,现在我需要使用与Ruby中的Javascript一样多的代码,这使我对这些技术之间的差异和相似之处有了一些见识。

And sure, when it comes to client side HTML/CSS rendering (or the “views”), the Rails user experience isn’t even comparable to the big JavaScript frameworks. That I must give the Rails haters.

当然,在客户端HTML / CSS渲染(或“视图”)方面,Rails用户体验甚至无法与大型JavaScript框架相比。 我必须让Rails讨厌。

For instance, take a basic comment section of an article or blog post. As a user you’d expect any comments you submit to appear instantly on your screen.

例如,选择文章或博客文章的基本评论部分。 作为用户,您希望提交的任何评论都会立即显示在屏幕上。

In a modern JavaScript framework, this is simply a matter of pushing the new data (the comment) into the client side data store and making sure that the comment list updates its state to show the new comment. This way, you don’t have to wait for the new record to be sent all the way to the backend, stored in the database, and then requested by the client again. Instead the new comment appears instantly on your screen.

在现代JavaScript框架中,这仅仅是将新数据(注释)推入客户端数据存储区,并确保注释列表更新其状态以显示新注释的问题。 这样,您不必等待新记录一直发送到后端,存储在数据库中,然后再由客户端再次请求。 而是新注释立即显示在屏幕上。

Without any JavaScript on top of your Rails HTML code, the user would have to refresh the page to see any new comments on the article. Which is just awful UX. To avoid this, you can take a few different paths.

如果您的Rails HTML代码上没有任何JavaScript,则用户必须刷新页面才能看到有关该文章的任何新评论。 这真是糟糕的用户体验。 为避免这种情况,您可以采取几种不同的方法。

Before the age of the JS frameworks, the main solution would be to sprinkle some quite unstructured AJAX logic on top of the HTML, which would often become very hard to maintain in the long run as your app gets bigger. Another option made available for Rails quite recently is the pubsub (publish-subscribe) websocket solution using something like Action Cable. For instance, this is what we used for the chat in the app we built in the bootcamp. The problem is just that without a wrapping JavaScript framework, the websocket logic can easily get unnecessarily complex, and also hard to maintain.

在JS框架问世之前,主要的解决方案是在HTML之上添加一些非结构化的AJAX逻辑,从长远来看,随着您的应用变得越来越大,通常很难维护这些逻辑。 最近为Rails提供的另一个选项是使用诸如Action Cable之类的pubsub(发布-订阅)websocket解决方案。 例如,这就是我们在训练营中构建的应用程序中用于聊天的内容。 问题在于,如果没有包装JavaScript框架,websocket逻辑很容易变得不必要的复杂,并且难以维护。

Luckily, however, today we have the much better option to use JavaScript frameworks for these types of problems. And since the client side in my opinion is the weakest point of Rails, this is also my main argument why Rails should not be discarded as an option to for instance Laravel or the MERN stack. Just smack a crisp JavaScript framework on top, like React or Ember, and you’re good to go.

幸运的是,今天,对于这些类型的问题,我们有更好的选择来使用JavaScript框架。 而且由于我认为客户端是Rails的最薄弱点,所以这也是我的主要论点,为什么不应该将Rails作为例如Laravel或MERN堆栈的选项丢弃。 只需在顶部放一个清晰JavaScript框架(如React或Ember),就可以了。

I personally love our integration between Rails and Ember and how they complement each other. Their opinionated natures, solid track records, visionary leadership, and huge contributor communities make them stable, trustworthy, and suitable for junior developers like ourselves.

我个人喜欢我们在Rails和Ember之间的集成以及它们如何相互补充。 他们自以为是的性质,可靠的往绩记录,富有远见的领导才能以及庞大的贡献者社区使它们稳定,值得信赖,并适合像我们这样的初级开发人员。

If you’re still, despite my best efforts, feeling hesitant about betting on Ruby as your first backend language, I’d like to remind you that I knew practically nothing about JavaScript six months ago (except for some basic vanilla JS, React, and jQuery syntax), and today I work with, and transition between, both of these languages and frameworks seamlessly on a daily basis. And love every minute of it (figuratively speaking).

如果您仍然竭尽全力,但仍然不愿意将Ruby作为您的第一款后端语言,我想提醒您,六个月前我对JavaScript几乎一无所知(除了一些基本的香草JS,React,和jQuery语法),今天我每天都无缝地使用这两种语言和框架并在它们之间进行过渡。 并且爱它的每一分钟(象征意义上来说)。

So no matter what you bet on as your first language, don’t worry — you can always learn the second one on the job ?

因此,无论您以第一语言打赌什么,都不必担心-您可以随时在工作中学习第二语言?

2. 9周的学习时间不是很短吗? (2. Aren’t 9 weeks too short to learn anything?)

Regarding my concern that the duration of the bootcamp — a mere 9 weeks — might be too short to actually learn something valuable, Le wagon helped me bust that myth as well. In hindsight, it’s actually clear that I’d prefer 9 weeks over the 12 that most other bootcamps offer.

关于我担心训练营的持续时间(仅9个星期)可能太短而无法实际学习一些有价值的知识,Le wagon也帮助我打破了这个神话。 事后看来,很明显,与大多数其他训练营提供的12个星期相比,我希望有9个星期。

The reason is that the bootcamp itself doesn’t actually take you to an employment-ready level. At least not for me. Rather it provided me with a solid introduction to all the necessary tools I would require to reach a productive level, and how to put them all together. So even if they would have given me three more weeks, it would just have meant a dozen more tool introductions. Tools that I would later have to actually learn how to use in depth. And that list was already more than long enough.

原因是,训练营本身并没有真正带您进入就业就绪的水平。 至少不适合我。 相反,它为我提供了扎实的介绍,以介绍达到生产力水平所需的所有必要工具,以及如何将它们组合在一起。 因此,即使他们再给我三周的时间,也意味着会再引入十二种工具。 我以后必须实际学习如何深入使用的工具。 该列表已经足够长。

It wasn’t until after the bootcamp, after weeks of building my own portfolio apps, that I understood how the tools really worked. So if you’ve decided that you want to do the bootcamp thing, but are comparing options based on a difference of a few weeks, my advice would be to remove that variable from the equation. Because if you’re anything like me, you will still have to relearn every single tool on your own.

直到训练营结束,经过数周构建自己的投资组合应用程序后,我才了解这些工具的真正作用。 因此,如果您已决定要进行训练营,但是正在基于几个星期的差异比较选项,那么我的建议是从方程式中删除该变量。 因为如果您像我一样,您仍然必须自己重新学习每个工具。

Looking back, it’s actually quite remarkable how accurate Le Wagon’s toolset was. In my current job I use most of these tools daily. Some examples would be Postgres, Git, GitHub, Sidekiq, Pundit, Heroku and Cloudinary. The only two things that I wished my teachers would have spent more time on would be how to use a JavaScript framework like React, and how to write tests with technologies like Rspec. Because learning those two on my own later proved to be crucial for landing my first developer job.

回顾过去,Le Wagon的工具集的精确度实际上非常出色。 在我目前的工作中,我每天都会使用大多数这些工具。 例如Postgres,Git,GitHub,Sidekiq,Pundit,Heroku和Cloudinary。 我希望老师们可以花更多时间在上面的两件事是如何使用像React这样JavaScript框架,以及如何用Rspec这样的技术编写测试。 因为后来证明我自己学习这两个方法对于找到我的第一个开发人员工作至关重要。

3.工作保障和/或职业服务对我有帮助吗? (3. Would a job guarantee and/or career services have helped me?)

As I mentioned earlier, many bootcamps have a “get hired or get your money back” policy. And many more have a career services body, to help you get in touch with potential employers and coach you for applications and interviews.

正如我之前提到的,许多新兵训练营都实行“聘用或退款”的政策。 And many more have a career services body, to help you get in touch with potential employers and coach you for applications and interviews.

And although this probably sounds like a sweet deal to many, I actually don’t think it would have made a difference for me. But then again, I also had the time to spend some 500 hours coding over the two months following the bootcamp, the privilege of having an elite school degree on my resume, and a lot of experience in applying and interviewing for jobs. If these things don’t apply to you, maybe this is a factor to consider when choosing among bootcamps. I don’t know.

And although this probably sounds like a sweet deal to many, I actually don't think it would have made a difference for me. But then again, I also had the time to spend some 500 hours coding over the two months following the bootcamp, the privilege of having an elite school degree on my resume, and a lot of experience in applying and interviewing for jobs. If these things don't apply to you, maybe this is a factor to consider when choosing among bootcamps. 我不知道。

Part 5: Building a portfolio (Part 5: Building a portfolio)

On the last of July this past summer, the bootcamp was over. But I was just getting started.

On the last of July this past summer, the bootcamp was over. But I was just getting started.

Developing the Unify app in the bootcamp and taking it across the finish line had given me a lot of momentum, and I was determined to make the most out of that momentum while it was there.

Developing the Unify app in the bootcamp and taking it across the finish line had given me a lot of momentum, and I was determined to make the most out of that momentum while it was there.

I still had some money left in the bank, and a few weeks left on the Barcelona apartment sublease. Basically everyone I knew in the city was leaving. So I had no reason at all to not just keep eating, sleeping, and dreaming code. Only half consciously I set up a few new routines and habits for myself:

I still had some money left in the bank, and a few weeks left on the Barcelona apartment sublease. Basically everyone I knew in the city was leaving. So I had no reason at all to not just keep eating, sleeping, and dreaming code. Only half consciously I set up a few new routines and habits for myself:

  • I would code every single day until I reached my goal, which of course was getting that first developer job. Meaning Monday to Sunday, day and night.

    I would code every single day until I reached my goal, which of course was getting that first developer job. Meaning Monday to Sunday, day and night.

  • I would push every piece of code that I wrote to Github, the #1 place for potential employers to inspect your code skills and level of ambition. Even if I didn’t feel like I’d produced something worth committing, I’d still do it just to build onto that sweet green commit history for all the world to see.

    I would push every piece of code that I wrote to Github , the #1 place for potential employers to inspect your code skills and level of ambition. Even if I didn't feel like I'd produced something worth committing, I'd still do it just to build onto that sweet green commit history for all the world to see.

In other words, my motivation to become a developer was stronger than ever, and I knew that having neither any academic or professional merits to show off, I would probably never even get called to a job interview unless I had a kickass portfolio. So that’s what I set my mind to do next.

In other words, my motivation to become a developer was stronger than ever, and I knew that having neither any academic or professional merits to show off, I would probably never even get called to a job interview unless I had a kickass portfolio. So that's what I set my mind to do next.

The day after the Demo Day, barely sober from the night out that had followed, I started building my very first own Rails app (that’s how strong the momentum was!). Cocky as I was, I figured the first app would take a few weeks to finish, now that I’d already gone through it all one time with the Unify app. Again, I was wrong.

The day after the Demo Day, barely sober from the night out that had followed, I started building my very first own Rails app (that's how strong the momentum was!). Cocky as I was, I figured the first app would take a few weeks to finish, now that I'd already gone through it all one time with the Unify app. Again, I was wrong.

It would take me almost two months to finish it. There were so many processes in the last two weeks of the bootcamp that had gone by so fast, without me fully understanding them. I got stuck for several days on all kinds of stuff, from embarrassingly simple to somewhat advanced. Just configuring a datetime-picker required several days spent on Stackoverflow. Not to mention the chat feature, using websockets with Action Cable, which took me about two weeks to get right.

It would take me almost two months to finish it. There were so many processes in the last two weeks of the bootcamp that had gone by so fast, without me fully understanding them. I got stuck for several days on all kinds of stuff, from embarrassingly simple to somewhat advanced. Just configuring a datetime-picker required several days spent on Stackoverflow. Not to mention the chat feature, using websockets with Action Cable, which took me about two weeks to get right.

But the time invested was so worth it. The app actually turned out pretty great: it was actually something I could demo for people and feel proud. And although there’d been many moments of desperation I’d learned a ton. And in fact, experiencing all that hustle gave me a lot of comfort in that the bootcamp had probably been a good choice.

But the time invested was so worth it. The app actually turned out pretty great: it was actually something I could demo for people and feel proud. And although there'd been many moments of desperation I'd learned a ton. And in fact, experiencing all that hustle gave me a lot of comfort in that the bootcamp had probably been a good choice.

If it was this hard to code this stuff now when I was familiar with everything, how hard wouldn’t it have been if I hadn’t had the teaching assistants, the platform, and the curriculum when doing it all the first time?

If it was this hard to code this stuff now when I was familiar with everything, how hard wouldn't it have been if I hadn't had the teaching assistants, the platform, and the curriculum when doing it all the first time?

So sometime in late August I finished the app. I was back home in Stockholm, living in my dad’s apartment, broke and feeling quite pathetic. I tried my best to use that self-pity to keep ramping up my coding efforts. And it was working pretty ok.

So sometime in late August I finished the app. I was back home in Stockholm, living in my dad's apartment, broke and feeling quite pathetic. I tried my best to use that self-pity to keep ramping up my coding efforts. And it was working pretty ok.

Soon enough the time came to code the actual portfolio website. And for once, I decided to keep it simple. So I put together a very minimalistic static web page where I could gather the stuff I’d done. After finishing it, my plan had been to start applying for jobs. But there was something that bothered me. Remember how I said that I’d been a bit hesitant towards Ruby on Rails before joining Le Wagon? Well, although I’d actually come to love Ruby’s minimalism and the simplicity of using Rails, I still felt like I’d taken a shortcut somewhere.

Soon enough the time came to code the actual portfolio website. And for once, I decided to keep it simple. So I put together a very minimalistic static web page where I could gather the stuff I'd done. After finishing it, my plan had been to start applying for jobs. But there was something that bothered me. Remember how I said that I'd been a bit hesitant towards Ruby on Rails before joining Le Wagon? Well, although I'd actually come to love Ruby's minimalism and the simplicity of using Rails, I still felt like I'd taken a shortcut somewhere.

Under the “Skills” section on my portfolio page, one could find Ruby, Rails, SQL, Postgres, HTML/CSS, jQuery, Bootstrap, Sketch, Git, and Heroku. And JavaScript.

Under the “Skills” section on my portfolio page, one could find Ruby, Rails, SQL, Postgres, HTML/CSS, jQuery, Bootstrap, Sketch, Git, and Heroku. And JavaScript.

It was the last one that bothered me. It felt like a lie.

It was the last one that bothered me. It felt like a lie.

If I started applying for jobs now, I could probably land something decent as a Rails developer. But what if all the haters were right, and Rails was actually outdated and dying? And what if I found my dream job, only to realize they used advanced JS technologies? I wouldn’t stand a chance with my 200 hours on freeCodeCamp and 2 — 3 jQuery days + 1 React.js day at the bootcamp.

If I started applying for jobs now, I could probably land something decent as a Rails developer. But what if all the haters were right, and Rails was actually outdated and dying? And what if I found my dream job, only to realize they used advanced JS technologies? I wouldn't stand a chance with my 200 hours on freeCodeCamp and 2 — 3 jQuery days + 1 React.js day at the bootcamp.

The hubris part of my brain spoke to me again - “Here’s an idea: what if I would learn the MEAN stack as well?” MEAN as in MongoDB, Express.js, Angular.js and Node.js, which is sort of like the JavaScript equivalent of what Rails is to Ruby. According to the search results on LinkedIn and Glassdoor, that would mean that I would more or less double the amount of developer jobs that I was qualified for.

The hubris part of my brain spoke to me again - “Here's an idea: what if I would learn the MEAN stack as well?” MEAN as in MongoDB, Express.js, Angular.js and Node.js, which is sort of like the JavaScript equivalent of what Rails is to Ruby. According to the search results on LinkedIn and Glassdoor, that would mean that I would more or less double the amount of developer jobs that I was qualified for.

I recalled that Gus, the bootcamp manager, had told me that it would take me about another month to learn it. How hard could it be? I could probably do it in two weeks, was my thought.

I recalled that Gus, the bootcamp manager, had told me that it would take me about another month to learn it. 它能有多难? I could probably do it in two weeks, was my thought.

And that’s how I ended up in what I’d like to call the tutorial swamp.

And that's how I ended up in what I'd like to call the tutorial swamp .

So once again, I turned to my old friend Google to research learning strategies. But after a few hours I still couldn’t seem to find a good online course for my MEAN stack 101 needs. They all seemed to be focusing on one part at a time, which is definitely the right way to go if you want to understand a framework in depth. But since I wanted to learn as much as I could within two weeks, just enough to be able to add a new project to my portfolio, I didn’t have time for that.

So once again, I turned to my old friend Google to research learning strategies. But after a few hours I still couldn't seem to find a good online course for my MEAN stack 101 needs. They all seemed to be focusing on one part at a time, which is definitely the right way to go if you want to understand a framework in depth. But since I wanted to learn as much as I could within two weeks, just enough to be able to add a new project to my portfolio, I didn't have time for that.

That’s when I discovered a completely new dimension of development education: YouTube tutorials. There were so many out there. For every technology or stack I could think of, I found at least five decent tutorials.

That's when I discovered a completely new dimension of development education: YouTube tutorials. There were so many out there. For every technology or stack I could think of, I found at least five decent tutorials.

Eventually I found my way to the Traversy Media channel, and the tutorial series MEAN Stack Front To Back. Ten videos at 20 minutes each, showing you how to build a basic RESTful web app with both user registration and sign-in authentication. Perfect.

Eventually I found my way to the Traversy Media channel , and the tutorial series MEAN Stack Front To Back . Ten videos at 20 minutes each, showing you how to build a basic RESTful web app with both user registration and sign-in authentication. 完善。

I started right away and coded along to each video on my laptop. And crazy enough, after just a few days I was done. I’d actually coded a fully functioning web app using completely foreign technologies. Node for the backend, Mongo for managing the database, Angular for the frontend, and Express for tying it all together.

I started right away and coded along to each video on my laptop. And crazy enough, after just a few days I was done. I'd actually coded a fully functioning web app using completely foreign technologies. Node for the backend, Mongo for managing the database, Angular for the frontend, and Express for tying it all together.

Could it really be this easy? Did I know this stuff now? While I was happy that it had been so much easier than I’d thought, a cold shiver of too-good-to-be-true ran down my spine.

Could it really be this easy? Did I know this stuff now? While I was happy that it had been so much easier than I'd thought, a cold shiver of too-good-to-be-true ran down my spine.

Well, since I was ahead of schedule, I figured, why not build onto the app a bit further? My idea was to turn it into a Medium clone, by just enabling basic blog post CRUD actions (create, read, update, delete), like we’d done in a project in the bootcamp with Rails.

Well, since I was ahead of schedule, I figured, why not build onto the app a bit further? My idea was to turn it into a Medium clone, by just enabling basic blog post CRUD actions (create, read, update, delete), like we'd done in a project in the bootcamp with Rails.

I didn’t get very far, though. I figured I would just need to add a couple of new routes, models, controllers and views, and that would be it. The problem was that I was still thinking in the “Rails way,” where “convention over configuration” makes features like this really easy and fast to build.

I didn't get very far, though. I figured I would just need to add a couple of new routes, models, controllers and views, and that would be it. The problem was that I was still thinking in the “Rails way,” where “convention over configuration” makes features like this really easy and fast to build.

As I’d read and heard plenty of times, the MEAN stack follows the opposite mantra: “configuration over convention,” meaning that you get a significantly more flexible framework by giving up some of the “magic” automations. Like getting a controller action of a certain name connected to a view with that same name, right out of the box. Which is a really sweet piece of magic to get when you’re a beginner.

As I'd read and heard plenty of times, the MEAN stack follows the opposite mantra: “configuration over convention,” meaning that you get a significantly more flexible framework by giving up some of the “magic” automations. Like getting a controller action of a certain name connected to a view with that same name, right out of the box. Which is a really sweet piece of magic to get when you're a beginner.

So realizing for the first time how much harder it was to code following “configuration over convention” came as a big slap in the face. Because it proved that my hunch about the whole tutorial process having been too good to be true was right. But it wasn’t until I started coding off-script, without the comforting instructions from Brad Traversy, that I realized it.

So realizing for the first time how much harder it was to code following “configuration over convention” came as a big slap in the face. Because it proved that my hunch about the whole tutorial process having been too good to be true was right. But it wasn't until I started coding off-script, without the comforting instructions from Brad Traversy, that I realized it.

So there I was, knee deep in the big pool of mud that was the MEAN stack to me then. The app was nowhere near ready to be added to my portfolio page. It literally had no features. Just the possibility for users to register, log in, and do nothing but look at some static Bootstrap designs.

So there I was, knee deep in the big pool of mud that was the MEAN stack to me then. The app was nowhere near ready to be added to my portfolio page. It literally had no features. Just the possibility for users to register, log in, and do nothing but look at some static Bootstrap designs.

Another option was to just keep hustling the trial and error way. Unlike the bootcamp, I’d removed my training wheels WAY too soon, and would likely have to spend weeks on Stackoverflow to be able to finish the app the way I’d planned it. I didn’t have weeks. I was supposed to start applying for jobs yesterday.

Another option was to just keep hustling the trial and error way. Unlike the bootcamp, I'd removed my training wheels WAY too soon, and would likely have to spend weeks on Stackoverflow to be able to finish the app the way I'd planned it. I didn't have weeks. I was supposed to start applying for jobs yesterday.

Ironically, it turned out the only way out of the tutorial swamp I’d put myself in, was to keep wading through it, by following more tutorials. Luckily, I found a pretty good one on the same Youtube channel, and decided to use it as my lifeline.

Ironically, it turned out the only way out of the tutorial swamp I'd put myself in, was to keep wading through it, by following more tutorials. Luckily, I found a pretty good one on the same Youtube channel, and decided to use it as my lifeline.

And that’s how the web app that was supposed to be a Medium clone in the end became a music discovery app, using the Spotify Search API.

And that's how the web app that was supposed to be a Medium clone in the end became a music discovery app, using the Spotify Search API.

Despite all the hustle, two weeks after the decision to try and learn the MEAN stack, I actually deployed a decent web app. Which had been my goal. Sure, it was a bit like cheating, but I figured that as long as I could demo it and explain all parts of it on a job interview, nobody would care if I’d followed a tutorial or not.

Despite all the hustle, two weeks after the decision to try and learn the MEAN stack, I actually deployed a decent web app. Which had been my goal. Sure, it was a bit like cheating, but I figured that as long as I could demo it and explain all parts of it on a job interview, nobody would care if I'd followed a tutorial or not.

Boom. All of a sudden I had three apps in my portfolio, and could add a bunch of new technologies to my skills repertoire. Finally, it was time to enter the next phase of my developer journey: the job hunt. And it was not a day too soon.

繁荣。 All of a sudden I had three apps in my portfolio, and could add a bunch of new technologies to my skills repertoire. Finally, it was time to enter the next phase of my developer journey: the job hunt. And it was not a day too soon.

Part 6. Applying for jobs (Part 6. Applying for jobs)

All in all, it would take me about 4 weeks, 30 applications, 10 interviews, and 3 offers to find that perfect fit. And ironically enough, it would actually be the first company I applied to that I would join. I could of course call it a coincidence, but I think it’s more an effect of a thorough screening process before even starting to send applications.

All in all, it would take me about 4 weeks, 30 applications, 10 interviews, and 3 offers to find that perfect fit. And ironically enough, it would actually be the first company I applied to that I would join. I could of course call it a coincidence, but I think it's more an effect of a thorough screening process before even starting to send applications.

I’ll have to admit that I think a fair amount of luck played into my fast job hunt success. But for what it’s worth, I’ll describe the process I followed, as I think it taught me a few things about what jobs and companies to focus on for that first dev job.

I'll have to admit that I think a fair amount of luck played into my fast job hunt success. But for what it's worth, I'll describe the process I followed, as I think it taught me a few things about what jobs and companies to focus on for that first dev job.

The first thing I did was set up a spreadsheet for a shortlist of interesting jobs (I’m originally a dull economist, remember?). Then I spent several days scouring the job boards of LinkedIn, Glassdoor, and Stackoverflow for jobs based on keywords like web, development, software, frontend, backend, Ruby, Rails, Javascript, Angular, Node, and Postgres.

The first thing I did was set up a spreadsheet for a shortlist of interesting jobs (I'm originally a dull economist, remember?). Then I spent several days scouring the job boards of LinkedIn, Glassdoor, and Stackoverflow for jobs based on keywords like web, development, software, frontend, backend, Ruby, Rails, Javascript, Angular, Node, and Postgres.

Not very surprisingly, the searches returned hundreds of jobs just in the Stockholm area alone. The companies behind them ranged from startups to digital agencies, media companies, cloud service providers, game developers, and everything in between.

Not very surprisingly, the searches returned hundreds of jobs just in the Stockholm area alone. The companies behind them ranged from startups to digital agencies, media companies, cloud service providers, game developers, and everything in between.

Over the past few months I’d managed to put together a pretty narrow set of criteria of what I wanted from my next employer.

Over the past few months I'd managed to put together a pretty narrow set of criteria of what I wanted from my next employer.

If I could choose any job I wanted, my priorities looked more or less like the following:

If I could choose any job I wanted, my priorities looked more or less like the following:

  1. I would code across the whole stack, meaning that I’d get to do just as much database and architecture stuff as UX/UI stuff, and mainly in JavaScript. All the hype around React probably had a lot to do with the latter. Like I told you before, for all I knew at this point, Rails was basically dying, and JavaScript was the future.

    I would code across the whole stack, meaning that I'd get to do just as much database and architecture stuff as UX/UI stuff, and mainly in JavaScript. All the hype around React probably had a lot to do with the latter. Like I told you before, for all I knew at this point, Rails was basically dying, and JavaScript was the future.
  2. My learning curve would be extremely steep, to the point that I’d have to code day and night to keep up. All to become as good as I possibly could in the shortest amount of time.

    My learning curve would be extremely steep, to the point that I'd have to code day and night to keep up. All to become as good as I possibly could in the shortest amount of time.
  3. My coworkers would be smart, ambitious, funny, and informal, and preferably all at the same time.

    My coworkers would be smart, ambitious, funny, and informal, and preferably all at the same time.
  4. The company would be a high-growth startup with a meaningful mission and a product related to blockchain, AI, and/or sustainability, or a top-tier digital agency with such projects.

    The company would be a high-growth startup with a meaningful mission and a product related to blockchain, AI, and/or sustainability, or a top-tier digital agency with such projects.
  5. I would get paid fairly.

    I would get paid fairly.

That was about it. Pretty high demands for a rookie one might think. But note that a high salary was not part of the criteria (nor is it today, with 6 months of professional experience). Maybe I’m stating the obvious, but if you’re migrating into a pure development role from something completely different, I think it’s important to know that it doesn’t matter what you were paid before.

就是这样。 Pretty high demands for a rookie one might think. But note that a high salary was not part of the criteria (nor is it today, with 6 months of professional experience). Maybe I'm stating the obvious, but if you're migrating into a pure development role from something completely different, I think it's important to know that it doesn't matter what you were paid before.

For instance, I knew that my market value in the finance industry was about $5,000 per month. But realizing that software development is a fundamentally different craft, I’d set my goal around $3,700, but would settle for as low as $3,000 (which is significantly lower than the Swedish average salary around $4,000).

For instance, I knew that my market value in the finance industry was about $5,000 per month. But realizing that software development is a fundamentally different craft, I'd set my goal around $3,700, but would settle for as low as $3,000 (which is significantly lower than the Swedish average salary around $4,000).

With all the above criteria in mind, I’d start going through the job ads one by one, adding the ones I liked to my shortlist and abandoning the ones I didn’t. After a while I was noticing a few patterns:

With all the above criteria in mind, I'd start going through the job ads one by one, adding the ones I liked to my shortlist and abandoning the ones I didn't. After a while I was noticing a few patterns:

Firstly, most companies on paper required way more tech skills and experience than I could offer. This came as no surprise. From both my own research and the bootcamp I’d learned that the “junior developer” position was dying.

Firstly, most companies on paper required way more tech skills and experience than I could offer. This came as no surprise. From both my own research and the bootcamp I'd learned that the “junior developer” position was dying.

That many companies considered it too expensive to spend the valuable time of senior developers on mentoring rookies. Which was why they prefered hiring senior developers, which are in very high demand but extremely low in supply.

That many companies considered it too expensive to spend the valuable time of senior developers on mentoring rookies. Which was why they prefered hiring senior developers, which are in very high demand but extremely low in supply.

The big paradox here is of course that if no one takes it upon themselves to foster and teach junior developers, how can we ever patch the shortage of senior developers on the market? Nevertheless, having realized that this is the way the industry works today, I also realized that I’d have to apply for positions I wasn’t qualified for.

The big paradox here is of course that if no one takes it upon themselves to foster and teach junior developers, how can we ever patch the shortage of senior developers on the market? Nevertheless, having realized that this is the way the industry works today, I also realized that I'd have to apply for positions I wasn't qualified for.

Secondly, I saw that the hotter and bigger the company was, the more likely it was to include requirements of some computer science related degree and professional development experience. I reckoned that sure, a decent portfolio and cover letter could probably get you an interview with a company who requires a “Rails ninja” or “React superstar” rather than a novice like I was.

Secondly, I saw that the hotter and bigger the company was, the more likely it was to include requirements of some computer science related degree and professional development experience. I reckoned that sure, a decent portfolio and cover letter could probably get you an interview with a company who requires a “Rails ninja” or “React superstar” rather than a novice like I was.

But if the job ad explicitly requires 3+ years of professional JavaScript experience, and an MSc in a computer science related field, my chances of getting an interview are probably very slim.

But if the job ad explicitly requires 3+ years of professional JavaScript experience, and an MSc in a computer science related field, my chances of getting an interview are probably very slim.

Thirdly, that almost every single job ad mentioned React. Despite all the hype around it online, I was still amazed by its crazy high demand.

Thirdly, that almost every single job ad mentioned React. Despite all the hype around it online, I was still amazed by its crazy high demand.

So amazed that I actually decided to spend a few hours a day building a small React web app, using React.js on the front and Rails on the back, so that I could add that to my portfolio and resume as well.

So amazed that I actually decided to spend a few hours a day building a small React web app, using React.js on the front and Rails on the back, so that I could add that to my portfolio and resume as well.

For this I actually mostly used the notes from the one React lecture in Le Wagon’s bootcamp, but if you’d be interested in learning it you won’t have a hard time finding free guides out there, not least the ones from freeCodeCamp.

For this I actually mostly used the notes from the one React lecture in Le Wagon's bootcamp, but if you'd be interested in learning it you won't have a hard time finding free guides out there, not least the ones from freeCodeCamp.

Except for the fact that I could put React on my resume, the biggest benefit from this experience was getting comfortable with building a web app using components (as opposed to controllers and views, as is the Rails way), and working with props and state.

Except for the fact that I could put React on my resume, the biggest benefit from this experience was getting comfortable with building a web app using components (as opposed to controllers and views, as is the Rails way), and working with props and state.

Odds are that you’ll need to become friends with some sort of JavaScript framework sooner or later, and then these concepts will come handy either way, be it React, Angular, Vue, Ember or any other of the gazillion JavaScript frameworks out there.

Odds are that you'll need to become friends with some sort of JavaScript framework sooner or later, and then these concepts will come handy either way, be it React, Angular, Vue, Ember or any other of the gazillion JavaScript frameworks out there.

With new insights like the ones above, I could develop and refine the criteria I already had to determine whether a certain job should be added to my shortlist or not. Soon enough I had a list of some 50 job openings, and it was time to actually start sending out applications. Coming from a background where I’d applied and interviewed at hundreds of companies, this felt like the easiest part so far.

With new insights like the ones above, I could develop and refine the criteria I already had to determine whether a certain job should be added to my shortlist or not. Soon enough I had a list of some 50 job openings, and it was time to actually start sending out applications. Coming from a background where I'd applied and interviewed at hundreds of companies, this felt like the easiest part so far.

This might have something to do with me being the kind of person that writes one generic cover letter that I send to everyone. I know what you’re thinking: every mentor/teacher/recruiter you’ve ever talked to has advised against this. But come on. It’s a job application. Not the speech for your best friend’s wedding.

This might have something to do with me being the kind of person that writes one generic cover letter that I send to everyone. I know what you're thinking: every mentor/teacher/recruiter you've ever talked to has advised against this. But come on. It's a job application. Not the speech for your best friend's wedding.

Odds are the recruiter won’t spend more than a minute on it anyway. So it won’t really matter if you mention that prize that the company won, or that you were impressed by the YoY growth last year, or your totally speculative opinion on why their culture is so much better than competitor X’s.

Odds are the recruiter won't spend more than a minute on it anyway. So it won't really matter if you mention that prize that the company won, or that you were impressed by the YoY growth last year, or your totally speculative opinion on why their culture is so much better than competitor X's.

What matters is that you’re able to express in text the case why you’re worth them spending an hour on meeting you — in a compelling, data-driven, and grammatically flawless way. If you want to have a look at mine, just write me and I’ll send it to you! Got some pretty flattering feedback on it, just saying…

What matters is that you're able to express in text the case why you're worth them spending an hour on meeting you — in a compelling, data-driven, and grammatically flawless way. If you want to have a look at mine, just write me and I'll send it to you! Got some pretty flattering feedback on it, just saying…

The next thing I did was update my CV and LinkedIn profile. And here I can’t stress enough the importance of keywords. Make sure that the names of all the technologies you know (or want to pretend that you know) are included in both. This way, you’re more likely to appear in search results (same here, just ask me and I’ll send you my CV).

The next thing I did was update my CV and LinkedIn profile . And here I can't stress enough the importance of keywords. Make sure that the names of all the technologies you know (or want to pretend that you know) are included in both. This way, you're more likely to appear in search results (same here, just ask me and I'll send you my CV).

After sending all the applications, a week or so went by without me hearing anything from any of the companies. That actually turned out to be a well-needed period of rest for me. I took some time to reconnect with the friends and family I’d sort of neglected for the past few months, caught up by my new obsession.

After sending all the applications, a week or so went by without me hearing anything from any of the companies. That actually turned out to be a well-needed period of rest for me. I took some time to reconnect with the friends and family I'd sort of neglected for the past few months, caught up by my new obsession.

Then I started getting replies.

Then I started getting replies.

Part 7: Doing interviews (Part 7: Doing interviews)

The first reply came from a really young startup. It basically consisted of two guys, an ex-banker CEO and a senior developer CTO. The email was from the CTO, and he was inviting me to my very first developer interview.

The first reply came from a really young startup. It basically consisted of two guys, an ex-banker CEO and a senior developer CTO. The email was from the CTO, and he was inviting me to my very first developer interview.

Aware that the positive responses will always come before the rejections, I tried to keep a cool head and not get too excited.

Aware that the positive responses will always come before the rejections, I tried to keep a cool head and not get too excited.

But still, just the fact that this guy, a senior developer with 10+ years of experience, had looked over my LinkedIn profile, cover letter, CV, and most importantly my portfolio and the code behind it on my Github profile, and still thought I might be able to write good code for them, made me feel pretty damn proud of myself.

But still, just the fact that this guy, a senior developer with 10+ years of experience, had looked over my LinkedIn profile, cover letter, CV, and most importantly my portfolio and the code behind it on my Github profile, and still thought I might be able to write good code for them, made me feel pretty damn proud of myself.

Although I didn’t think the company actually met all my criteria (mainly due to the tiny team and poor salary outlook), I responded immediately and accepted the invite.

Although I didn't think the company actually met all my criteria (mainly due to the tiny team and poor salary outlook), I responded immediately and accepted the invite.

Despite all my efforts up to this point, I hadn’t spent much time actually preparing for the technical interview. But from what I’d heard and read it was supposed to be an art in itself, and in many cases something people would spend months preparing for.

Despite all my efforts up to this point, I hadn't spent much time actually preparing for the technical interview . But from what I'd heard and read it was supposed to be an art in itself, and in many cases something people would spend months preparing for.

Oftentimes, bootcamp alumni and self-taught coders with more practical experience will fail the technical interview due to their lack of knowledge in fundamental computer science theory. Just like CS grads will often fail due to their lack of experience with building apps with modern technologies.

Oftentimes, bootcamp alumni and self-taught coders with more practical experience will fail the technical interview due to their lack of knowledge in fundamental computer science theory. Just like CS grads will often fail due to their lack of experience with building apps with modern technologies.

But since I was running out of both time and money, I figured this too was something I’d have to learn by doing. I just couldn’t postpone the interviewing phase anymore. Just like I’d gotten burned many times when learning how to do the financial type of interview, I knew those burns were crucial for me finally figuring out how to win the interview. Why would the technical interview be any different?

But since I was running out of both time and money, I figured this too was something I'd have to learn by doing. I just couldn't postpone the interviewing phase anymore. Just like I'd gotten burned many times when learning how to do the financial type of interview, I knew those burns were crucial for me finally figuring out how to win the interview. Why would the technical interview be any different?

So I accepted the invite, and a few days later I walked into the lobby of their office. They were waiting for me by the reception desk.

So I accepted the invite, and a few days later I walked into the lobby of their office. They were waiting for me by the reception desk.

The place was a dump. If you’d ever seen The Office, it felt like I’d just stepped inside the office of the Dunder Mifflin Paper Company. They told me it used to be an office for a big auditing company, remade into a cheap interim coworking space for the time left until its planned renovation. We stepped into a conference room and sat down by a big wooden table.

The place was a dump. If you'd ever seen The Office, it felt like I'd just stepped inside the office of the Dunder Mifflin Paper Company. They told me it used to be an office for a big auditing company, remade into a cheap interim coworking space for the time left until its planned renovation. We stepped into a conference room and sat down by a big wooden table.

They started off by telling me a lot about themselves and the company. They’d just released a beta version of a new Medium-ish app for prominent lifestyle writers, and had raised a bit of money from friends and family in their seed round. But they were still pre-launch, and most definitely pre-revenue.

They started off by telling me a lot about themselves and the company. They'd just released a beta version of a new Medium-ish app for prominent lifestyle writers, and had raised a bit of money from friends and family in their seed round. But they were still pre-launch, and most definitely pre-revenue.

After about an hour of what felt much more like a sales pitch than an interview, the CEO left and I was told that the CTO and I would continue for the technical part of the interview. My heart skipped a beat. From all that I’d read about technical interviews I expected to get all sorts of brain teasers, coding challenges, and questions on complex data structures thrown at me.

After about an hour of what felt much more like a sales pitch than an interview, the CEO left and I was told that the CTO and I would continue for the technical part of the interview. 我的心跳了一下。 From all that I'd read about technical interviews I expected to get all sorts of brain teasers, coding challenges, and questions on complex data structures thrown at me.

But none came. Instead, the CTO starting asking me all these very open-ended questions.

But none came. Instead, the CTO starting asking me all these very open-ended questions.

Like what technologies and frameworks I liked. If I could choose any new technology to learn next, what it would be. What I thought about the new syntax introduced by ES6 (the 2015 Javascript update, introducing a lot of new cool stuff like arrow functions, promises, and constants).

Like what technologies and frameworks I liked. If I could choose any new technology to learn next, what it would be. What I thought about the new syntax introduced by ES6 (the 2015 Javascript update, introducing a lot of new cool stuff like arrow functions, promises, and constants).

We had a nice conversation that lasted for probably another half hour. But then came the big backlash, when the CTO decided to put all the cards on the table.

We had a nice conversation that lasted for probably another half hour. But then came the big backlash, when the CTO decided to put all the cards on the table.

Due to their tight financial situation, he told me, they could only offer me a 6-month internship role with symbolic pay for now (meaning practically no pay). If the internship went well, however, they were very open to offering both equity and decent pay.

Due to their tight financial situation, he told me, they could only offer me a 6-month internship role with symbolic pay for now (meaning practically no pay). If the internship went well, however, they were very open to offering both equity and decent pay.

“If the company is still around by then,” I almost added.

“If the company is still around by then,” I almost added.

Although I was flattered that they’d made me an offer on the spot, I knew instantly that this was neither the company nor product I was looking for. Nevertheless, I didn’t turn them down right away. An offer is still an offer, I thought, and can always come handy when negotiating with other companies later on.

Although I was flattered that they'd made me an offer on the spot, I knew instantly that this was neither the company nor product I was looking for. Nevertheless, I didn't turn them down right away. An offer is still an offer, I thought, and can always come handy when negotiating with other companies later on.

Despite the disappointment about both the job, and the fact that the technical interview hadn’t really taught me anything new, I’d still received an offer, which gave me a big confidence boost for the interviews to come.

Despite the disappointment about both the job, and the fact that the technical interview hadn't really taught me anything new, I'd still received an offer, which gave me a big confidence boost for the interviews to come.

The second response I got was from a slightly larger startup called Teamtailor. They were a Stockholm-based company with a mission to digitize the recruiting and employer branding industry, currently ruled by quite non-technical recruitment consultants and HR managers.

The second response I got was from a slightly larger startup called Teamtailor. They were a Stockholm-based company with a mission to digitize the recruiting and employer branding industry, currently ruled by quite non-technical recruitment consultants and HR managers.

Not a bad idea. Although job ads starting with words like “recruitment” and “HR” 9 days out of 10 would’ve scared me away, there was something about this company that intrigued me.

不错的主意。 Although job ads starting with words like “recruitment” and “HR” 9 days out of 10 would've scared me away, there was something about this company that intrigued me.

From my pretty thorough research I’d found that they’d been around for about 4 years, had some 30 employees, presence in 4 or 5 countries, 600 customers (businesses), a 100%+ revenue growth rate, and breaking even with some margin on top. Not bad at all.

From my pretty thorough research I'd found that they'd been around for about 4 years, had some 30 employees, presence in 4 or 5 countries, 600 customers (businesses), a 100%+ revenue growth rate, and breaking even with some margin on top. 一点也不差。

To top it all off, their instagram account revealed their office: a brooklyn-ish old red brick beer factory in the middle of Södermalm, the best area Stockholm has to offer.

To top it all off, their instagram account revealed their office: a brooklyn-ish old red brick beer factory in the middle of Södermalm, the best area Stockholm has to offer.

M. M. Mmm.

MM Mmm.

Everything pointed towards the fact that they were in that sweet spot of the company life cycle. Young enough to be able to make you feel like you’re on a journey together, with an informal culture and lots of room for initiative and growth. But still old enough to have established some structures, which can be nice to lean on when you’re learning something new.

Everything pointed towards the fact that they were in that sweet spot of the company life cycle. Young enough to be able to make you feel like you're on a journey together, with an informal culture and lots of room for initiative and growth. But still old enough to have established some structures, which can be nice to lean on when you're learning something new.

Anyway. Again, it was the CTO that wrote to me. After a few messages back and forth we settled on a first interview in their office a few days later. I was told that both he and another co-founder would be meeting with me.

无论如何。 Again, it was the CTO that wrote to me. After a few messages back and forth we settled on a first interview in their office a few days later. I was told that both he and another co-founder would be meeting with me.

Before even meeting with any of them, I had a really good feeling about the whole thing. Which was bad. At least in my head. Because now I would enter the interview probably wanting them more than they wanted me, I thought. After walking up the stairs of the old beer factory, I finally reached the door to their office and stepped right into a rather special scene.

Before even meeting with any of them, I had a really good feeling about the whole thing. Which was bad. At least in my head. Because now I would enter the interview probably wanting them more than they wanted me, I thought. After walking up the stairs of the old beer factory, I finally reached the door to their office and stepped right into a rather special scene.

First, a big pink poster right in my face, with bold white letters screaming at me: “Teamtailor is one of Europe’s 100 hottest startups - Wired Magazine.” To my left what looked like a living room, where a bunch of 20-somethings were playing FIFA on a huge screen. In front of me a bigger room, where the table closest to me was filled with developers, casually hacking away on big crisp screens. And all around me, soft hiphop beats pulsating from Sonos speakers.

First, a big pink poster right in my face, with bold white letters screaming at me: “Teamtailor is one of Europe's 100 hottest startups - Wired Magazine.” To my left what looked like a living room, where a bunch of 20-somethings were playing FIFA on a huge screen. In front of me a bigger room, where the table closest to me was filled with developers, casually hacking away on big crisp screens. And all around me, soft hiphop beats pulsating from Sonos speakers.

Right in that moment, any bad prejudice I’d held against them for being an HR company disappeared. This place was awesome. Dammit.

Right in that moment, any bad prejudice I'd held against them for being an HR company disappeared. This place was awesome. 该死

You can say a lot of bad things about the typical Silicon Valley wannabe office. But in my opinion, even the worst office of this kind will still be a thousand times better than the typical corporate counterpart. So for me it was heaven. Which was really bad for my attempted coolness for the interview.

You can say a lot of bad things about the typical Silicon Valley wannabe office. But in my opinion, even the worst office of this kind will still be a thousand times better than the typical corporate counterpart. So for me it was heaven. Which was really bad for my attempted coolness for the interview.

A tall skinny guy with a baseball cap smiled at me and got up from his chair to greet me. It was the CTO. We stepped into a conference room with glass walls and green fake grass covering the floor. The other co-founder joined us and we kicked off the interview.

A tall skinny guy with a baseball cap smiled at me and got up from his chair to greet me. It was the CTO. We stepped into a conference room with glass walls and green fake grass covering the floor. The other co-founder joined us and we kicked off the interview.

Unlike my last interview, they started off by telling me about the process I was in. The purpose of this first meeting was mainly to get to know me better. If I proceeded, the second step would be a technical interview. I was so relieved to hear that. The imposter syndrome was real.

Unlike my last interview, they started off by telling me about the process I was in. The purpose of this first meeting was mainly to get to know me better. If I proceeded, the second step would be a technical interview. I was so relieved to hear that. The imposter syndrome was real.

The first question was more or less the classic “Why do you want to be a developer?” They told me that more than anything else, it was my cover letter and CV that had caught their eye. Finding business-minded developers was rare, and finding developers with business degrees and experience from both business development and finance even rarer. So why had I decided to hop off my path to pursue this totally different one?

The first question was more or less the classic “Why do you want to be a developer?” They told me that more than anything else, it was my cover letter and CV that had caught their eye. Finding business-minded developers was rare, and finding developers with business degrees and experience from both business development and finance even rarer. So why had I decided to hop off my path to pursue this totally different one?

From interview experience, I’ve learned that honesty is almost always the best way to go in these cases. So I basically told them what I told you in the beginning of this article, that I hate selling, love technology, and wanted to transition into the creative side of things.

From interview experience, I've learned that honesty is almost always the best way to go in these cases. So I basically told them what I told you in the beginning of this article, that I hate selling, love technology, and wanted to transition into the creative side of things.

From this point forward, the conversation sort of got its own life. At one point, I told them that if I’d known the things that I know now, I’d probably had chosen to study computer science instead of business. To my surprise, the CTO was surprised by this remark. He laughed and asked me why.

From this point forward, the conversation sort of got its own life. At one point, I told them that if I'd known the things that I know now, I'd probably had chosen to study computer science instead of business. To my surprise, the CTO was surprised by this remark. He laughed and asked me why.

I hesitated. I realized it was one of those things I’d said because I thought it’s what they wanted to hear. He let me off the hook, and told me that he was also a self-taught developer. The only subject he’d taken in uni was film studies. I was a bit shocked by that. But there was more to it.

I hesitated. I realized it was one of those things I'd said because I thought it's what they wanted to hear. He let me off the hook, and told me that he was also a self-taught developer. The only subject he'd taken in uni was film studies. I was a bit shocked by that. But there was more to it.

As a matter of fact, none of the 10 developers at the company had a real CS degree. A few of them had taken a year or two of some private web development program, but most were actually self-taught.

As a matter of fact, none of the 10 developers at the company had a real CS degree. A few of them had taken a year or two of some private web development program, but most were actually self-taught.

Hearing that from this guy made me so happy. He’d just confirmed what my former colleague Sandra had told me a year earlier - that you don’t need a degree to become a great developer. Good stuff.

Hearing that from this guy made me so happy. He'd just confirmed what my former colleague Sandra had told me a year earlier - that you don't need a degree to become a great developer. 好东西。

The conversation kept going so smoothly that it wasn’t until the last few minutes when they asked me about my portfolio. Only one of them had actually looked at it, and he literally said he’d just “had a glance.” All caught up by how well the interview was going, I told them I would be happy to demo one of my apps.

The conversation kept going so smoothly that it wasn't until the last few minutes when they asked me about my portfolio. Only one of them had actually looked at it, and he literally said he'd just “had a glance.” All caught up by how well the interview was going, I told them I would be happy to demo one of my apps.

Immediately, their faces lit up and they straightened in their chairs, nodding me on. I was about to realize that I’d just made a BIG mistake.

Immediately, their faces lit up and they straightened in their chairs, nodding me on. I was about to realize that I'd just made a BIG mistake.

The only app that was nearly good enough to show to these guys was the one that I’d made over the month straight after the bootcamp. And I hadn’t touched that one for at least a month. I hooked up my MacBook to the big screen in front of us, and entered the URL in the browser.

The only app that was nearly good enough to show to these guys was the one that I'd made over the month straight after the bootcamp. And I hadn't touched that one for at least a month. I hooked up my MacBook to the big screen in front of us, and entered the URL in the browser.

The first embarrassment was that it literally took 20 seconds to load the home page. With a dry throat I tried to explain that I was using the free version of Heroku, which meant that whenever the server associated with the domain didn’t receive any requests for more than an hour, it would go into this “sleep mode,” from which it took a long time to wake up. The last thing I wanted was them to think my app was slow.

The first embarrassment was that it literally took 20 seconds to load the home page. With a dry throat I tried to explain that I was using the free version of Heroku, which meant that whenever the server associated with the domain didn't receive any requests for more than an hour, it would go into this “sleep mode,” from which it took a long time to wake up. The last thing I wanted was them to think my app was slow.

When it had actually loaded I took some time to explain the idea behind the product. It was basically a service for creating virtual lines, allowing organizations like airlines, banks, and hospitals to set up queues online instead of in their physical locations.

When it had actually loaded I took some time to explain the idea behind the product. It was basically a service for creating virtual lines, allowing organizations like airlines, banks, and hospitals to set up queues online instead of in their physical locations.

Then came the second embarrassment. When I tried logging in on my account using Facebook authentication it failed. As I would realize much too late, the reason was that I hadn’t updated the URL in my Facebook API settings after getting a new SSL certificate. So Facebook was expecting requests from an http://domain, while mine came from an https:// domain. Rookie mistake.

Then came the second embarrassment. When I tried logging in on my account using Facebook authentication it failed. As I would realize much too late, the reason was that I hadn't updated the URL in my Facebook API settings after getting a new SSL certificate. So Facebook was expecting requests from an http://domain, while mine came from an https:// domain. Rookie mistake.

I finally managed to log in manually instead, and demoed some of the main features without any issues. But then came the biggest embarrassment of them all. I couldn’t seem to get the crown jewel of my app to work: the chat. When I clicked the chat link, I got to the chat page, but couldn’t see any of my fake users to chat with.

I finally managed to log in manually instead, and demoed some of the main features without any issues. But then came the biggest embarrassment of them all. I couldn't seem to get the crown jewel of my app to work: the chat. When I clicked the chat link, I got to the chat page, but couldn't see any of my fake users to chat with.

Then I basically gave up. Which I really shouldn’t have. Because just a few hours later, I would realize that the chat worked perfectly fine. My user account simply hadn’t signed up for any lines to participate in, which is why I couldn’t see any users to chat with either.

Then I basically gave up. Which I really shouldn't have. Because just a few hours later, I would realize that the chat worked perfectly fine. My user account simply hadn't signed up for any lines to participate in, which is why I couldn't see any users to chat with either.

We said our goodbyes and they told me they would be in touch. I left the interview feeling angry and disappointed. Why hadn’t I prepared better for the demo? It had all gone so smoothly until that last part.

We said our goodbyes and they told me they would be in touch. I left the interview feeling angry and disappointed. Why hadn't I prepared better for the demo? It had all gone so smoothly until that last part.

Nevertheless, not even an hour would pass until David wrote me again. He told me I had proceeded to the next step of the process. I couldn’t believe it and I couldn’t have been happier. But of course, also a bit scared about taking on my first real technical interview.

Nevertheless, not even an hour would pass until David wrote me again. He told me I had proceeded to the next step of the process. I couldn't believe it and I couldn't have been happier. But of course, also a bit scared about taking on my first real technical interview.

In the end, however, this second interview would also turn out to be nothing like all the horror stories I’d read about online. Already in the invite email, the CTO told me that I would be meeting with two of their senior developers, and that they simply wanted me to show off one my apps more thoroughly, along with the code behind it.

In the end, however, this second interview would also turn out to be nothing like all the horror stories I'd read about online. Already in the invite email, the CTO told me that I would be meeting with two of their senior developers, and that they simply wanted me to show off one my apps more thoroughly, along with the code behind it.

The main purpose would be to get a grip of how well I knew their backend framework (Rails), and how fast I could be able to learn their frontend framework Ember.js (which I hadn’t even heard about at this point).

The main purpose would be to get a grip of how well I knew their backend framework (Rails), and how fast I could be able to learn their frontend framework Ember.js (which I hadn't even heard about at this point).

I knew instantly that the demo app would have to be the one that I’d built using Rails and React.js. It was perfect for two reasons:

I knew instantly that the demo app would have to be the one that I'd built using Rails and React.js. It was perfect for two reasons:

  1. it was built on Rails integrated with a JavaScript framework (just like their stack), and

    it was built on Rails integrated with a JavaScript framework (just like their stack), and
  2. I’d learned all the React stuff I used in less than two weeks, which would give them a good sense of how fast I could learn Ember.

    I'd learned all the React stuff I used in less than two weeks, which would give them a good sense of how fast I could learn Ember.

This case is a perfect example why it can actually pay off to not put all your eggs in one basket when you’re building your portfolio, but actually try out a few different stacks.

This case is a perfect example why it can actually pay off to not put all your eggs in one basket when you're building your portfolio, but actually try out a few different stacks.

Soon enough the big day came, and I was back in their office in another of their fake-grass-floor conference rooms. I started off showing the UI flow of the app.

Soon enough the big day came, and I was back in their office in another of their fake-grass-floor conference rooms. I started off showing the UI flow of the app.

I surfed onto the web app, and soon enough the working title “AppHunt” lit up on the screen in big bold purple letters. It was sort of like Product Hunt, but more like a market place strictly for apps. So any user would be able to browse the home page for apps for sale and for purchase. And if they created an account and logged in, they would also be able to search and filter the app items, rate them, and write stuff in the comment fields. That was basically it.

I surfed onto t he web app, and soon enough the working title “AppHunt” lit up on the screen in big bold purple letters. It was sort of like Product Hunt, but more like a market place strictly for apps. So any user would be able to browse the home page for apps for sale and for purchase. And if they created an account and logged in, they would also be able to search and filter the app items, rate them, and write stuff in the comment fields. That was basically it.

But fortunately for me, it was enough. The two senior developers apparently liked what I showed them so much that they gave the CTO the thumbs up. They later told me a few things that they liked specifically:

But fortunately for me, it was enough. The two senior developers apparently liked what I showed them so much that they gave the CTO the thumbs up. They later told me a few things that they liked specifically:

  • That the real-time features — like changes in the comments, search results, and ratings appearing instantly — showed that I knew how to use state and props, which is crucial in any JavaScript framework.

    That the real-time features — like changes in the comments, search results, and ratings appearing instantly — showed that I knew how to use state and props, which is crucial in any JavaScript framework.
  • That I used JBuilder to serialize the JSON requests between frontend and backend.

    That I used JBuilder to serialize the JSON requests between frontend and backend.
  • That I used Elasticsearch for the search feature.

    That I used Elasticsearch for the search feature.
  • That they liked the design and that I’d made my sketches myself in Sketch before starting to code.

    That they liked the design and that I'd made my sketches myself in Sketch before starting to code.
  • That the CSS code wasn’t very contextually styled or nested. Instead they found much of it reusable throughout the entire app, which was good. One thing that would have made them even more impressed though, they told me, would have been if I’d followed the so-called BEM CSS naming convention as well.

    That the CSS code wasn't very contextually styled or nested. Instead they found much of it reusable throughout the entire app, which was good. One thing that would have made them even more impressed though, they told me, would have been if I'd followed the so-called BEM CSS naming convention as well.

It wasn’t until a few weeks after the second interview that the CTO reached out to me again with an offer. After some discussions back and forth we settled on a probationary period of 6 months, with a $3,300 monthly salary that would be boosted to my $3,700 target when I reached a productive level.

It wasn't until a few weeks after the second interview that the CTO reached out to me again with an offer. After some discussions back and forth we settled on a probationary period of 6 months, with a $3,300 monthly salary that would be boosted to my $3,700 target when I reached a productive level.

I accepted on the spot and started my new job the next week. ✌️

I accepted on the spot and started my new job the next week. ✌️

In parallel with the whole Teamtailor process, I interviewed for 4 other companies as well. The most noteworthy was the Swedish fintech phenomenon iZettle, which is sort of an umbrella of several different financial products, but where their wireless card terminal is probably the one they’re most known for.

In parallel with the whole Teamtailor process, I interviewed for 4 other companies as well. The most noteworthy was the Swedish fintech phenomenon iZettle, which is sort of an umbrella of several different financial products, but where their wireless card terminal is probably the one they're most known for.

As this successful startup was approaching a unicorn valuation, I’d learn that their demands on experience and skill level were significantly higher than the smaller startups that I’d interviewed for up to this point. I saw it both in the much more thorough recruitment process they had (5 interviews!) and the difficulty level of the interview questions.

As this successful startup was approaching a unicorn valuation, I'd learn that their demands on experience and skill level were significantly higher than the smaller startups that I'd interviewed for up to this point. I saw it both in the much more thorough recruitment process they had (5 interviews!) and the difficulty level of the interview questions.

The main reason a rookie like me even got an interview there in the first place I’d say would be largely due to the recommendation from a friend and the name of the business school I graduated from. So I sort of cheated my way in, I’d say. But I was so obviously not prepared for them.

The main reason a rookie like me even got an interview there in the first place I'd say would be largely due to the recommendation from a friend and the name of the business school I graduated from. So I sort of cheated my way in, I'd say. But I was so obviously not prepared for them.

Just like with the other companies, the first interview was all fluff and soft skills. But even more “HR” this time. Why do you want to work as a developer? What technologies do you like using? What are your strengths/weaknesses? And so on. Easy stuff.

Just like with the other companies, the first interview was all fluff and soft skills. But even more “HR” this time. Why do you want to work as a developer? What technologies do you like using? What are your strengths/weaknesses? 等等。 Easy stuff.

The second interview, however, would turn out to be a quite traumatic experience. It all started with me sitting down in a conference room with two of their web developers. We repeated the whole “get to know each other” conversation and I was getting pretty comfortable and confident. And then I got the biggest sucker punch of my life.

The second interview, however, would turn out to be a quite traumatic experience. It all started with me sitting down in a conference room with two of their web developers. We repeated the whole “get to know each other” conversation and I was getting pretty comfortable and confident. And then I got the biggest sucker punch of my life.

Out of nowhere the guy across the table handed me a huge white A3 paper and a pen. He told me they wanted me to draw a sketch of the data flows and processes involved in the following scenario:

Out of nowhere the guy across the table handed me a huge white A3 paper and a pen. He told me they wanted me to draw a sketch of the data flows and processes involved in the following scenario:

“A small business owner has an account with iZettle and uses their card terminal. After one of his/her own customers has made a purchase using the terminal, he/she wants to log onto the web app and/or mobile app to see the transaction.”
“A small business owner has an account with iZettle and uses their card terminal. After one of his/her own customers has made a purchase using the terminal, he/she wants to log onto the web app and/or mobile app to see the transaction.”

This really caught me off guard, but I hesitantly nodded and accepted the challenge. Then the guy said something like: “We’ll just go and have a coffee, and then in 5 minutes or so we’ll come back and let you explain your thoughts.”

This really caught me off guard, but I hesitantly nodded and accepted the challenge. Then the guy said something like: “We'll just go and have a coffee, and then in 5 minutes or so we'll come back and let you explain your thoughts.”

5 minutes! Was that a joke? I really couldn’t tell. When they’d left, I seriously considered if this was some sort of trick question, where I was supposed to realize that this task was just too big to perform decently in such short time. But time was already running out and it was too big of a risk. So I decided to give it a shot.

5 minutes! Was that a joke? I really couldn't tell. When they'd left, I seriously considered if this was some sort of trick question, where I was supposed to realize that this task was just too big to perform decently in such short time. But time was already running out and it was too big of a risk. 所以我决定试一试。

In hindsight, I realize that it was a system design question, meaning that they wanted me to basically just map up an overall view of how the web app and mobile app made requests to some API that connected them to the server(s) and database (if you want to improve your system design skills, I’d really recommend this Youtube channel).

In hindsight, I realize that it was a system design question, meaning that they wanted me to basically just map up an overall view of how the web app and mobile app made requests to some API that connected them to the server(s) and database (if you want to improve your system design skills, I'd really recommend this Youtube channel ).

But I did none of that. In my state of panic, I skipped ahead several steps, and started trying to sketch the database model of the user account, with a table, columns and foreign keys (I assumed that they used a relational database). When I was done with that, I had about 30 seconds left to map up the other components of the architecture. I was so stressed that I got all philosophical, and started questioning what the actual roles of the API and server were. Not a good sign.

But I did none of that. In my state of panic, I skipped ahead several steps, and started trying to sketch the database model of the user account, with a table, columns and foreign keys (I assumed that they used a relational database). When I was done with that, I had about 30 seconds left to map up the other components of the architecture. I was so stressed that I got all philosophical, and started questioning what the actual roles of the API and server were. 这不是一个好兆头。

5 minutes passed, and the two developers returned to a sketch barely worthy of a 5-year-old. I’d basically just drawn three circles. One to the left, representing the database, and two to the right, representing the web and mobile app clients.

5 minutes passed, and the two developers returned to a sketch barely worthy of a 5-year-old. I'd basically just drawn three circles. One to the left, representing the database, and two to the right, representing the web and mobile app clients.

Of course, I failed the interview miserably. Which was also the reason I didn’t move on to a third one. However, they let me down easy, telling me that they liked me and that I should apply again when I had one or two more years of experience.

Of course, I failed the interview miserably. Which was also the reason I didn't move on to a third one. However, they let me down easy, telling me that they liked me and that I should apply again when I had one or two more years of experience.

The whole experience bummed me out, as I didn’t think I’d gotten a chance to show them my practical skills. Although I can kind of see that there’s some sort of value in being able to illustrate system architecture on a piece of paper, I really think that there’s a thousand times more value in being able to show your skills with a practical exercise, like a coding challenge or app demo. But hey, there’s a lesson to be learned in every failure, right?

The whole experience bummed me out, as I didn't think I'd gotten a chance to show them my practical skills. Although I can kind of see that there's some sort of value in being able to illustrate system architecture on a piece of paper, I really think that there's a thousand times more value in being able to show your skills with a practical exercise, like a coding challenge or app demo. But hey, there's a lesson to be learned in every failure, right?

All in all, during my 4 weeks of job hunting I ended up attending 11 interviews for 6 companies, of which 3 made me offers. So despite getting burned a few times, it was really an amazing experience. If I was asked to name the one single biggest reward (except for getting my dream offer), it would be that I got comfortable with talking to developers about software. If you’re suffering from the imposter syndrome like I did (look it up, it’s a thing), there’s simply no better way to treat it.

All in all , during my 4 weeks of job hunting I ended up attending 11 interviews for 6 companies, of which 3 made me offers. So despite getting burned a few times, it was really an amazing experience. If I was asked to name the one single biggest reward (except for getting my dream offer), it would be that I got comfortable with talking to developers about software . If you're suffering from the imposter syndrome like I did (look it up, it's a thing), there's simply no better way to treat it.

Another key takeaway is that out of my 11 interviews, only one turned out to require actual theoretical computer science knowledge. No questions on complex data structures, no devious brainteasers. Just one question on system architecture. The rest were 100% centered around either practical or soft skills. So unless you’re applying for a flashy software engineering job at Google or Facebook, I’d definitely recommend to focus on the practical stuff, and learn the theoretical stuff later.

Another key takeaway is that out of my 11 interviews, only one turned out to require actual theoretical computer science knowledge. No questions on complex data structures, no devious brainteasers. Just one question on system architecture. The rest were 100% centered around either practical or soft skills. So unless you're applying for a flashy software engineering job at Google or Facebook, I'd definitely recommend to focus on the practical stuff, and learn the theoretical stuff later.

Lastly, I’d like to stress the fact that I didn’t know anyone involved with the company that I ended up getting hired by. I know there’s a lot of content out there claiming that a strong personal network is the single most important factor to land the first dev job. And although that might be true statistically, cold-applying without a referrer is definitely not a waste of time.

Lastly, I'd like to stress the fact that I didn't know anyone involved with the company that I ended up getting hired by. I know there's a lot of content out there claiming that a strong personal network is the single most important factor to land the first dev job. And although that might be true statistically, cold-applying without a referrer is definitely not a waste of time.

Part 8: What I do today (Part 8: What I do today)

At the time of writing, I’ve been working at Teamtailor for six months. And time really has flown by quicker than I could’ve ever imagined. I’ve barely even noticed the long, dark, and freezing winter that’s usually a struggle to endure here in Stockholm.

At the time of writing, I've been working at Teamtailor for six months. And time really has flown by quicker than I could've ever imagined. I've barely even noticed the long, dark, and freezing winter that's usually a struggle to endure here in Stockholm.

I’m part of a team of 12 people, where everyone except for one designer are full stack Rails and JavaScript developers. A few have 10+ years of experience, some just a few years, but only two hold actual academic tech degrees. The rest of us are more or less self-taught.

I'm part of a team of 12 people, where everyone except for one designer are full stack Rails and JavaScript developers. A few have 10+ years of experience, some just a few years, but only two hold actual academic tech degrees. The rest of us are more or less self-taught.

I spend my days hacking away on our Rails/Ember platform, every day trying to leave the app a little bit better than I found it the same morning. The product itself is a recruitment web app that lets companies build and manage their own career sites, effortlessly and completely without requiring any coding skills.

I spend my days hacking away on our Rails/Ember platform, every day trying to leave the app a little bit better than I found it the same morning. The product itself is a recruitment web app that lets companies build and manage their own career sites, effortlessly and completely without requiring any coding skills.

In turn, the app behind this career site has two main dimensions:

In turn, the app behind this career site has two main dimensions:

  1. It lets users handle the employer branding meant to attract talent, with means such as job posts, social media content, a blog, images, videos and gifs.

    It lets users handle the employer branding meant to attract talent, with means such as job posts, social media content, a blog, images, videos and gifs.
  2. It offers a massive set of tools to handle the traffic and applicants — like tracking candidates, chatting, emailing and texting them, evaluating them with tests, setting up automatic triggers to execute some action when a candidate is moved from one stage to another, and promoting job ads on all the major job boards to name a few.

    It offers a massive set of tools to handle the traffic and applicants — like tracking candidates, chatting, emailing and texting them, evaluating them with tests, setting up automatic triggers to execute some action when a candidate is moved from one stage to another, and promoting job ads on all the major job boards to name a few.

How we work (How we work)

In our product team, we try our best to follow the agile principles of Scrum, Kanban, and pair programming. Practically, for us this means we carry out our work in cycles, where we split up the implementation of new features into projects running for 6 weeks at a time. In turn, each project has developers paired up two-and-two, and made responsible for shipping the new features within those 6 weeks. The pairs deploy their work continuously, based on a predefined Trello board of smaller tasks within each planned feature.

In our product team, we try our best to follow the agile principles of Scrum , Kanban , and pair programming. Practically, for us this means we carry out our work in cycles, where we split up the implementation of new features into projects running for 6 weeks at a time. In turn, each project has developers paired up two-and-two, and made responsible for shipping the new features within those 6 weeks. The pairs deploy their work continuously, based on a predefined Trello board of smaller tasks within each planned feature.

Of course, we don’t just build new stuff. We also maintain the app. And at the core of this maintenance we have what I believe is a pretty unusual routine: the “tech-on-call” duty. This means a weekly rotating position where each developer in turn spends one whole week assisting our users and support staff on Intercom.

Of course, we don't just build new stuff. We also maintain the app. And at the core of this maintenance we have what I believe is a pretty unusual routine: the “tech-on-call” duty. This means a weekly rotating position where each developer in turn spends one whole week assisting our users and support staff on Intercom .

If you think this sounds like an annoying and frustrating task, it was. Until we decided that each tech-on-call would pause all their other projects while on support duty. Then all of sudden, when I no longer felt like every minute spent on Intercom was a minute stolen from my projects and deadlines, I actually started enjoying it.

If you think this sounds like an annoying and frustrating task, it was. Until we decided that each tech-on-call would pause all their other projects while on support duty. Then all of sudden, when I no longer felt like every minute spent on Intercom was a minute stolen from my projects and deadlines, I actually started enjoying it.

Think about it - when you just take the time to listen, you realize that you basically have an army of volunteering quality assurance testers at your disposal, always ready to give instant feedback on the product’s actual UX and user pain points. Considering this, suffice it to say that I’ve learned just as much from my tech-on-call weeks as any other project or bug that I’ve been working on.

Think about it - when you just take the time to listen, you realize that you basically have an army of volunteering quality assurance testers at your disposal, always ready to give instant feedback on the product's actual UX and user pain points. Considering this, suffice it to say that I've learned just as much from my tech-on-call weeks as any other project or bug that I've been working on.

Lastly, in between each 6-week cycle, we take two weeks to make a common effort to squash all the bugs lined up in our Trello bug board. We also use these two weeks to develop pitches for new features that we ourselves would like to see in the app. Every developer then gets the chance to pitch these ideas in a shared pitch meeting that we have every 8 weeks, which is really empowering for someone who’s not just looking to solve tough code problems, but also business problems through new cool additions to the existing product.

Lastly, in between each 6-week cycle, we take two weeks to make a common effort to squash all the bugs lined up in our Trello bug board. We also use these two weeks to develop pitches for new features that we ourselves would like to see in the app. Every developer then gets the chance to pitch these ideas in a shared pitch meeting that we have every 8 weeks, which is really empowering for someone who's not just looking to solve tough code problems, but also business problems through new cool additions to the existing product.

What I've done so far (What I’ve done so far)

Although the app includes so many features and technologies that in the beginning were completely foreign to me, I was thrown right into the middle of the action already in my second week. The onboarding process — meaning me having a senior developer show me the ropes — lasted only five days. After that first week, in theory, I was supposed to be more or less autonomous.

Although the app includes so many features and technologies that in the beginning were completely foreign to me, I was thrown right into the middle of the action already in my second week. The onboarding process — meaning me having a senior developer show me the ropes — lasted only five days. After that first week, in theory, I was supposed to be more or less autonomous.

This meant I was expected to understand the architecture of the platform, the dev toolkit, the team’s workflow, our style guide, how to provide tech support to users and colleagues, and other internal routines for developing, testing, debugging, reviewing and deploying code. In other words, a LOT of new stuff for someone who just came out of a bootcamp.

This meant I was expected to understand the architecture of the platform, the dev toolkit, the team's workflow, our style guide, how to provide tech support to users and colleagues, and other internal routines for developing, testing, debugging, reviewing and deploying code. In other words, a LOT of new stuff for someone who just came out of a bootcamp.

If you’re panicking right now because you think I actually learned all that in a week, relax. I definitely didn’t. It wasn’t until after a few months that I started getting comfortable with most of that stuff. And with time, the others would notice, and I would be trusted with more and more responsibility. Since then I’ve gotten to be a part of some of the most exciting and challenging projects I’ve ever worked on.

If you're panicking right now because you think I actually learned all that in a week, relax. 我绝对没有。 It wasn't until after a few months that I started getting comfortable with most of that stuff. And with time, the others would notice, and I would be trusted with more and more responsibility. Since then I've gotten to be a part of some of the most exciting and challenging projects I've ever worked on.

The first serious one was updating the method we used to fetch information about users who signed up on our app with just an email. We’d already integrated with a third party API for this, that we made requests to to get data like full names and URLs to social media profiles and avatar pictures.

The first serious one was updating the method we used to fetch information about users who signed up on our app with just an email. We'd already integrated with a third party API for this, that we made requests to to get data like full names and URLs to social media profiles and avatar pictures.

However, since we’d found the fetched data to often be incorrect, the product team had decided to switch to another provider. Since it would expose me to several crucial areas and data flows of the app, it was the perfect next step for me.

However, since we'd found the fetched data to often be incorrect, the product team had decided to switch to another provider. Since it would expose me to several crucial areas and data flows of the app, it was the perfect next step for me.

To implement it, I would have to navigate all the way from getting the email from the user input at the very front of the client layer, to understanding how the data would travel from the Ember frontend, through adapters and serializers to the Rails backend and ultimately get stored in the database.

To implement it, I would have to navigate all the way from getting the email from the user input at the very front of the client layer, to understanding how the data would travel from the Ember frontend, through adapters and serializers to the Rails backend and ultimately get stored in the database.

My second own feature was developing what we call the “call to action button,” meaning that we’d allow our users to add custom buttons to their career sites in our editor tool.

My second own feature was developing what we call the “call to action button,” meaning that we'd allow our users to add custom buttons to their career sites in our editor tool.

For instance, we wanted to let them redirect to the page of a certain job opening, a certain department, or some completely external URL. This actually turned out to be a lot easier than I’d expected. Most of the backend architecture was already in place, so all I had to do was basically create a few new Ember components and add them to the other options in the career site editor.

For instance, we wanted to let them redirect to the page of a certain job opening, a certain department, or some completely external URL. This actually turned out to be a lot easier than I'd expected. Most of the backend architecture was already in place, so all I had to do was basically create a few new Ember components and add them to the other options in the career site editor.

The third feature I worked on was enabling our users to integrate with external assessment providers, meaning they would be able to send candidates to a test platform like Hackerrank. When they’d finished a test, the results would automatically be sent through an integration between our and the provider’s APIs. This was a big one, so I mostly acted as an assistant to the senior developer (aka the Ember grandmaster of our team) responsible for the project. Still, it taught me tons about how to properly set up an API integration and automating workflows with triggers.

The third feature I worked on was enabling our users to integrate with external assessment providers, meaning they would be able to send candidates to a test platform like Hackerrank. When they'd finished a test, the results would automatically be sent through an integration between our and the provider's APIs. This was a big one, so I mostly acted as an assistant to the senior developer (aka the Ember grandmaster of our team) responsible for the project. Still, it taught me tons about how to properly set up an API integration and automating workflows with triggers.

My fourth project was the biggest to date, and for good and bad I ended up doing it more or less on my own. The entire app had originally been built in Rails, and most views had been rewritten with JavaScript and Ember one by one. Only one of our main sections of the app still had just Rails views. It was the so-called “Employees” section, which was basically the main destination for creating, editing, and deleting user accounts. So it was kind of important that my translation to Ember was flawless.

My fourth project was the biggest to date, and for good and bad I ended up doing it more or less on my own. The entire app had originally been built in Rails, and most views had been rewritten with JavaScript and Ember one by one. Only one of our main sections of the app still had just Rails views. It was the so-called “Employees” section, which was basically the main destination for creating, editing, and deleting user accounts. So it was kind of important that my translation to Ember was flawless.

Which stressed me out like crazy. Since I’d been on the team for about three months at this point, I figured it was time to stop acting like some annoying intern and start working more independently. Meaning I tried to bother the others with as few questions as I possibly could. The good thing about this was that I got a lot of confidence in my ability to solve real-world software problems completely on my own. The bad thing, however, was that it made me super slow, and that it took me a good 6 weeks to ship the full rewrite of more than 2,000 new lines of code.

Which stressed me out like crazy. Since I'd been on the team for about three months at this point, I figured it was time to stop acting like some annoying intern and start working more independently. Meaning I tried to bother the others with as few questions as I possibly could. The good thing about this was that I got a lot of confidence in my ability to solve real-world software problems completely on my own. The bad thing, however, was that it made me super slow, and that it took me a good 6 weeks to ship the full rewrite of more than 2,000 new lines of code.

In the end, this actually even proved to be the main reason why I didn’t get the raise that the CTO and I had agreed on, since I hadn’t fulfilled my end of the bargain: I hadn’t reached a productive level in line with the rest of the team.

In the end, this actually even proved to be the main reason why I didn't get the raise that the CTO and I had agreed on, since I hadn't fulfilled my end of the bargain: I hadn't reached a productive level in line with the rest of the team .

Although this sucked at the time, I now realize that his standpoint was completely fair, and it taught me an important lesson. In the world of Agile software development, lone wolfing isn’t an option. Teamwork is a major part of finding a productive workflow.

Although this sucked at the time, I now realize that his standpoint was completely fair, and it taught me an important lesson. In the world of Agile software development, lone wolfing isn't an option. Teamwork is a major part of finding a productive workflow.

The fifth project is the last to date, and we actually just shipped it. It was our new feature to handle the emerging new European data privacy legislation (GDPR). For us that translated into building tools that made it easier for our customers’ candidates to have their personal data deleted from our database, and also for our customers to ask the candidates for permission to store and keep storing their data.

The fifth project is the last to date, and we actually just shipped it. It was our new feature to handle the emerging new European data privacy legislation (GDPR). For us that translated into building tools that made it easier for our customers' candidates to have their personal data deleted from our database, and also for our customers to ask the candidates for permission to store and keep storing their data.

Sounds pretty straightforward right? Well, it wasn’t. At all.

Sounds pretty straightforward right? Well, it wasn't. 完全没有

I think the main reason was that we couldn’t focus on a single destination of the app. Instead, the feature required us to add stuff all over the place. Notifications in one place, warning flags in another, search filters and bulk actions in a third, and dozens of new email sendout actions everywhere.

I think the main reason was that we couldn't focus on a single destination of the app. Instead, the feature required us to add stuff all over the place. Notifications in one place, warning flags in another, search filters and bulk actions in a third, and dozens of new email sendout actions everywhere.

For the first time since I started, I was paired up with the senior developer and co-founder that onboarded me. So I felt it was really important for me to show him how much I’d learned since that first week six months earlier. My probation period was about to end, and they would soon have to make a decision if I was good enough to keep on the team. And with this “simple” project, I first figured proving that would be a piece of cake.

For the first time since I started, I was paired up with the senior developer and co-founder that onboarded me. So I felt it was really important for me to show him how much I'd learned since that first week six months earlier. My probation period was about to end, and they would soon have to make a decision if I was good enough to keep on the team. And with this “simple” project, I first figured proving that would be a piece of cake.

Oddly enough though, I think the complexities made our pair-programming sessions even better. There were so many user scenarios to take into account when designing each part of the architecture, that we were forced to discuss and twist and turn every new block of code. For the first time, I’d have to take into account not only the UI/UX dimension, but also extensive legal considerations, that could cause a lot of trouble for our users if we didn’t implement it correctly.

Oddly enough though, I think the complexities made our pair-programming sessions even better. There were so many user scenarios to take into account when designing each part of the architecture, that we were forced to discuss and twist and turn every new block of code. For the first time, I'd have to take into account not only the UI/UX dimension, but also extensive legal considerations, that could cause a lot of trouble for our users if we didn't implement it correctly.

So we pair-programmed a lot, and it was really great. When I coded, he came with a lot of good feedback that mostly made my code a lot cleaner. But unlike that first onboarding week, I was actually also able to give feedback on his code, making suggestions and asking questions that really made his code better as well.

So we pair-programmed a lot, and it was really great. When I coded, he came with a lot of good feedback that mostly made my code a lot cleaner. But unlike that first onboarding week, I was actually also able to give feedback on his code, making suggestions and asking questions that really made his code better as well.

When you’re in a state of intense development, like I’ve been for the past year, I think it’s hard to quantify how much your skills have improved at any given moment. So being able to give constructive feedback to this guy, with 15+ years of coding under his belt, really put the writing on the wall for me.

When you're in a state of intense development, like I've been for the past year, I think it's hard to quantify how much your skills have improved at any given moment. So being able to give constructive feedback to this guy, with 15+ years of coding under his belt, really put the writing on the wall for me.

And by the way, so did the extension of my 6-month probationary employment contract, which I was just recently made aware of. From now on, I’m a regular full-time employee, with the salary I initially requested six months ago ? ?

And by the way, so did the extension of my 6-month probationary employment contract, which I was just recently made aware of. From now on, I'm a regular full-time employee, with the salary I initially requested six months ago ? ?

Part 9: Why becoming a developer is the best thing I've ever done (Part 9: Why becoming a developer is the best thing I’ve ever done)

As you’ve probably figured out by now, I’m in love with coding.

As you've probably figured out by now, I'm in love with coding.

I love that it keeps forcing me to push my intellectual limits through quantitative problem solving.

I love that it keeps forcing me to push my intellectual limits through quantitative problem solving.

I love that it provides me with an outlet for creative expressions when designing anything from UI to system architecture.

I love that it provides me with an outlet for creative expressions when designing anything from UI to system architecture.

I love that it provides me with a thousand different solutions for every real-world problem.

I love that it provides me with a thousand different solutions for every real-world problem.

I love that it not only tolerates my inner perfectionist, but actually requires that perfectionist to be present — and punishes its absence.

I love that it not only tolerates my inner perfectionist, but actually requires that perfectionist to be present — and punishes its absence.

I love that it surrounds me with people that value genuineness and transparency above small-talk and politeness.

I love that it surrounds me with people that value genuineness and transparency above small-talk and politeness.

I love that, on my introverted days, it lets me put on my headphones, roll up my sleeves, and deep dive into another dimension for a while.

I love that, on my introverted days, it lets me put on my headphones, roll up my sleeves, and deep dive into another dimension for a while.

I love that it always holds something new for me to learn, and that it will require me to be a lifelong learner, unlike many other stagnant professions.

I love that it always holds something new for me to learn, and that it will require me to be a lifelong learner, unlike many other stagnant professions.

But most of all, I love that coding has given me a sense that the future is truly limitless.

But most of all, I love that coding has given me a sense that the future is truly limitless.

In a few weeks I’ll turn 27, and I have no idea what the future holds for me. In three years, for all I know, I might still be in the same position as I am now, writing code for the same company. I might be a lead developer. I might be a product owner or manager. Or I might be somewhere completely different.

In a few weeks I'll turn 27, and I have no idea what the future holds for me. In three years, for all I know, I might still be in the same position as I am now, writing code for the same company. I might be a lead developer. I might be a product owner or manager. Or I might be somewhere completely different.

Freelancing remotely from a sunny paradise. Developing decentralized apps on some disruptive blockchain. Designing machine learning models to combat global warming. Writing spaceship algorithms for expeditions to Mars. Or building my own product.

Freelancing remotely from a sunny paradise. Developing decentralized apps on some disruptive blockchain. Designing machine learning models to combat global warming. Writing spaceship algorithms for expeditions to Mars. Or building my own product.

All of the above scenarios would have seemed utterly crazy to me before I started coding.

All of the above scenarios would have seemed utterly crazy to me before I started coding.

At best, my former finance jobs gave me the slim satisfaction of having put together a thick powerpoint presentation filled with upward-sloping KPI curves. And the best possible future scenario I could think of then was me landing a CFO or CEO position at some listed company after dedicating a decade of my life into 100-hour work weeks at some investment bank, private equity firm, or management consultancy, having spent my days around people who cared more about money and prestige than trying to do something meaningful with their lives. And that scared me.

At best, my former finance jobs gave me the slim satisfaction of having put together a thick powerpoint presentation filled with upward-sloping KPI curves. And the best possible future scenario I could think of then was me landing a CFO or CEO position at some listed company after dedicating a decade of my life into 100-hour work weeks at some investment bank, private equity firm, or management consultancy, having spent my days around people who cared more about money and prestige than trying to do something meaningful with their lives. And that scared me.

Today, there’s no likely future scenario that scares me at all. And that alone gives me certainty that my crooked journey over the past three years has had a purpose.

Today, there's no likely future scenario that scares me at all. And that alone gives me certainty that my crooked journey over the past three years has had a purpose.

Although it’s a bit sad that I invested so much time and energy into a career path that turned out to be a dead end, I know I was really fortunate to realize that already at age 23 — and to have the luxury to be able to make a halt, look around, and pursue something I felt more passionately about.

Although it's a bit sad that I invested so much time and energy into a career path that turned out to be a dead end, I know I was really fortunate to realize that already at age 23 — and to have the luxury to be able to make a halt, look around, and pursue something I felt more passionately about.

So good or bad, I guess it was the sum of all my experiences that took me to where I am today. A place where I somehow managed to find something few people ever do — a job that I love. And for that I’m more thankful than words can say.

So good or bad, I guess it was the sum of all my experiences that took me to where I am today. A place where I somehow managed to find something few people ever do — a job that I love . And for that I'm more thankful than words can say.

Congrats! Since you made it all the way through this VERY long article, you must be just as crazy as I am. I originally had two intentions with this text: to process my failures and successes of the past three years, and to inspire others on paths similar to mine. I consider the first one completed. So if you have any questions or feedback — please do get in touch! Either in the comments below or at charlie.jeppsson1@gmail.com.

恭喜! Since you made it all the way through this VERY long article, you must be just as crazy as I am. I originally had two intentions with this text: to process my failures and successes of the past three years, and to inspire others on paths similar to mine. I consider the first one completed. So if you have any questions or feedback — please do get in touch! Either in the comments below or at charlie.jeppsson1@gmail.com.

翻译自: https://www.freecodecamp.org/news/how-i-landed-a-full-stack-developer-job-without-a-tech-degree-or-work-experience-6add97be2051/

滴滴入职要学位证吗学位证

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值