我是如何在德国一边从事全职工作一边自学成才成为一名专业的开发人员的
网上有很多自学成才的开发人员分享他们的创业历程。
这些故事大多来自美国。
我从来没有偶然发现过来自德国自学成才的开发人员的故事,或者来自在德国作为自学成才的开发人员找到工作的人的故事。
正因如此,我决定在这里分享我的心路历程。
希望这篇博文能帮助大家避免重蹈我的覆辙,并从我的正确决策中汲取经验。
基本上,我想写一篇我刚开始编程时所需要的博客文章。
在博客文章的最后,我将为您提供一个简短的TLDR,其中列出了所有需要避免的错误以及需要遵循的提示。
首先我要声明一点:
严格来说,我并非完全自学成才,因为我之前确实完成了“IT专家”(Fachinformatiker für Systemintegration)的学徒期。我仍然认为自己是自学成才,因为那段时间我没有学习任何真正的编程知识。
开始
我的故事并不特殊,我想很多读者都和我当年处于同样的境地:
我对我的职业不满意,我想改变这种状况。
当时我住在一个小城市,据我所知,那里的开发人员没有太多机会。
因此,我决定辞掉原来的工作,找一份离最近的大城市更近的工作,希望自学编程后能在那里找到一份开发工作。
回想起来,这真是个很棒的决定,不仅让我更接近现场,也避免了一些干扰。因为我刚到这座城市,所以在那里没有朋友,而且我努力不去交任何朋友。
我的计划很简单:
- 在大城市附近找到一份新工作
- 一年内自学编程
- 获得一份专业程序员的工作
第一个错误:找一份有压力的工作
所以我来了,新工作,新城市。一切都还好,对吧?其实不然。
我找工作的时候没有做任何调查。我直接接了第一份想雇佣我的工作,因为反正我也不想在那里待太久。
大错特错。
这份工作压力极大,而且耗费脑力——这绝对是你想边学编程边做事最不想遇到的情况。我经常回到家就精疲力竭,需要小睡一会儿才能重新集中精力。
日程安排
由于我的目标是一年内成为一名全职开发人员,所以我需要将这个大目标分解成切实可行的步骤。所以我决定,除了8小时的全职工作时间外,每天还要花3个小时编程。
当你一边想成为全职开发者,一边又想做一份全职工作时,你很快就会发现,工作、通勤、做饭、做家务以及所有那些有趣的事情结束后,你剩下的时间已经所剩无几了。这就是为什么我开始认真关注自己每天的每一分钟。
我还写下了我每天编程的时间,这样我就不会欺骗自己。
这段时间我理想的日程安排是这样的:
周一至周五
06:50 - 起床,洗澡
07:15 - 上班
08:00 - 开始工作(其实我总是迟到 5 分钟,不过这件事就不提了)
17:00 - 下班
17:50 - 回家吃点东西
19:00 - 小睡
20:00 - 开始编程
23:00 - 一天结束,放松身心,上床睡觉
周六和周日,我没有固定的时间表,但我会进行至少 3 个小时的编程。
那个日程安排太糟糕了。我不会推荐任何人这样做,而且长此以往会导致倦怠。而且,事实证明,每天坐在电脑前12个小时不做任何运动对健康有害,谁知道呢?
第二个错误:没有方向
当我开始时,我尝试学习 Python,因为我读到过它是一门很棒的语言。
我感到无聊(因为我心里没有项目)就转向了 C++,然后在 C++ 和 Python 之间来回徘徊。
此外,我当时还阅读了各种对我来说太高级的编程书籍。
那时我才意识到,我刚刚浪费了大量的时间读书,而实际上我需要做的就是亲自动手,做一些实际的编程。
你不是通过读书来学习编程,而是通过编程来学习编程。
现在不要误会我的意思,我并不是说你不应该阅读有关编程的书籍。
事实上,我认为一旦掌握了基础知识,开始阅读编程书籍非常重要,这是学习软件架构、简洁代码和设计模式的最快方法。但我相信在最初的几个月里,你应该把大部分时间花在编程上。
我崩溃了——我的方法没起作用。就像一辆
陷在泥里的卡车,车轮空转,我哪儿也去不了。
我知道我需要从头开始。
走上正确的道路
我意识到我需要创建某种项目,以便可以
向潜在雇主展示。
那时我做了一些研究并决定 Web 开发是我最好的选择。
网络开发领域有很多工作机会,您可以轻松分享您的项目,并且不乏优秀的学习资源。
所以我开始学习 HTML、CSS、JavaScript 和 React。
学习基础知识后,我的目标是创建一个简单的时间跟踪网络应用程序,并使用该项目为我找到一份编程工作。
我购买了一些 Udemy 课程,并选择了一门最终产品与我想要创建的应用类似的课程。我仍然认为,如果你想学习一门新的技术栈,Udemy 课程是一个很好的学习工具。一开始,你常常不知道自己不知道什么。
这就是为什么拥有一位更有经验的导师会如此有用。
总的来说,我花了大约两个月的时间完成这个项目。
你可以在这里看到这个 repo 。现在我显然不知道自己在做什么——代码看起来很糟糕——但我设法得到了一个可以运行的应用程序,可以与潜在的雇主分享。
申请流程
没人喜欢被拒绝。也许这就是为什么我开始编程后等了8个月才递交申请。
回想起来,我或许应该早点申请。我见过一些和我类似经历的人,他们的作品集很差,但最终还是找到了工作。所以你或许应该考虑在三个月左右后再申请。
我试着站在人力资源的角度思考。假设某个职位收到 50 份申请,其中 49 份申请者都具备一定的经验或学位。
然后是我的申请:
- 零经验
- 没有学位对编程没有用
- 我的简历没有显示任何我可以编程的证据
你觉得人力资源部会怎么做?他们很可能会——而且理所当然地——给我发一封友好的拒绝邮件,然后转而考虑下一位候选人。
这就是为什么我要强调我的个人项目,我知道在我的处境下,普通的申请并不适合。
我的情况不同,所以我认为我的申请也应该不同。
我知道我必须通过人力资源部门的审核,找到一些开发人员来看一下我的项目,这是我唯一的机会。所以我的申请要点是:
我没有经验,但请看看我的个人项目。
效果出奇地好。
在得到这份工作之前,我大概投了15份申请,参加了4次面试。最终,我花了11个月的时间才实现成为一名专业程序员的目标。
TLDR
- 尽快开始编程,通过编程来学习编程
- 给自己设定一个成为专业程序员的最后期限
- 专注于一种编程语言
- 选择一种广泛使用的编程语言
- 在 GitHub 上创建一个可以向潜在雇主展示的项目
- 尝试每天迈出一步,学习编程是一场马拉松,而不是短跑
- 寻找导师或购买你感兴趣的技术的 Udemy 课程