2017年程序员失业潮_2017年,我成为一名程序员。 这是怎么回事

2017年程序员失业潮

by Stephen Amaza

斯蒂芬·阿马扎(Stephen Amaza)

2017年,我成为一名程序员。 这是怎么回事 (In 2017, I became a Programmer. Here is how it happened)

I work as a Product Specialist for one of Africa’s fastest growing payment company, Paystack. In the past year, I have created payment plugins for several e-commerce platforms using our API as well as pushed updates to existing plugins. I have also, along with my colleague, created a native app for one of Africa’s largest telecoms service as well as pushed a few internal projects.

我是非洲发展最快的支付公司之一Paystack的产品专家。 在过去的一年中,我已经使用我们的API为多个电子商务平台创建了支付插件,并推送了对现有插件的更新。 我还与同事一起为非洲最大的电信服务之一创建了本​​机应用程序,并推动了一些内部项目。

Yet, I have for the past years been unsure if I was actually a programmer or not. As there is no clear distinction to when one becomes a programmer, I was for a long while not sure if I was good enough to be called one. To be on the safe side, I used to avoid defining myself as a programmer.

但是,在过去的几年中,我一直不确定我是否真的是一名程序员。 由于对何时成为程序员没有明显的区别,所以我很长一段时间不确定我是否足够称职。 为了安全起见,我曾经避免将自己定义为程序员。

But what makes one a programmer? I could build static sites using HTML and CSS but those are not even programming languages. They are markup languages, so I didn’t feel it was right to tag myself a “programmer” yet.

但是,是什么让一个程序员呢? 我可以使用HTML和CSS来构建静态站点,但是它们甚至都不是编程语言。 它们是标记语言,所以我觉得将自己标记为“程序员”还不合适。

But then again, I learnt C++ while undergoing my Computer Engineering degree, doesn’t that count? I thought about it and I knew that that was bullshit and didn’t count either. We were taught C++ for a few weeks in 300 Level and barely brushed the surface.

但是话又说回来,我在获得计算机工程学位的同时学习了C ++,这不算数吗? 我考虑了一下,我知道那是胡扯,也不计较。 我们在300级水平上学习了C ++几周,几乎没有刷过表面。

We knew how to do the likes of conditional statements and other basic functions but that was it. To me, it didn’t and shouldn’t count for knowledge of the language. If you dropped me in a file of C++ code right now, I wouldn’t be able to debug my way out of it. And claiming I am a programmer because I was in a C++ class will be a scam.

我们知道如何做条件语句和其他基本功能之类的事情,仅此而已。 对我来说,它不应该也不应该算是语言知识。 如果您现在将我放在一个C ++代码文件中,那么我将无法调试它。 声称我是一名程序员,因为我在C ++类中,这将是一个骗局。

At some point, I decided to learn programming proper and I signed up on a couple of sites like Treehouse, and Udacity and took some courses. I followed the tutorials and did the projects but felt like I was being spoon fed and didn’t think I could do any of these things on my own. I didn’t like the method of learning and to me, I wasn’t learning much.

在某个时候,我决定学习适当的编程,然后在Treehouse和Udacity等几个站点上报名参加了一些课程。 我遵循了教程并进行了项目,但觉得自己像汤匙般地吃着,不认为自己能做这些事情。 我不喜欢学习的方法,对我来说,我没有学到太多。

Yes, I could now understand syntax and Google my way through minor problems but still felt like I couldn’t define myself as a programmer yet. I went on and took Codecademy tracks in Ruby, Python and Javascript and completed most of them. I was also a faithful on HackerRank trying out beginner challenges in those three languages and Java. At this point, I knew I knew something but was still hesitant to call myself a programmer. I wasn’t even sure yet if I wanted to be a mobile applications developer, frontend, or backend developer.

是的,我现在可以通过一些小问题了解语法和Google了,但是仍然觉得自己还不能定义自己为程序员。 我继续学习Ruby,Python和Javascript的Codecademy曲目,并完成了其中的大部分内容。 我还是HackerRank的忠实拥护者,尝试使用这三种语言和Java进行初学者挑战。 在这一点上,我知道我知道一些东西,但是仍然不愿意将自己称为程序员。 我什至不确定我是否想成为移动应用程序开发人员,前端或后端开发人员。

After spending some months at MEST last year, interacting with my colleagues and teaching fellows, I got some more clarity into what I wanted to achieve and how I could define it.

去年在MEST工作了几个月之后,与同事和老师互动,我对要达到的目标以及如何定义目标有了更多的了解。

I decided that I could call myself a programmer when I have these:

我决定在遇到这些情况时可以称自己为程序员:

  • Understand the syntax of a programming language.

    了解编程语言的语法。
  • Able to apply syntax to solve theoretical exercises (think Fizz buzz type exercises to more complicated ones).

    能够应用语法解决理论练习(将Fizz嗡嗡声类型的练习视为更复杂的练习)。

  • Build a mini project using the plain/vanilla version of a language i.e. without help of a library/framework.

    使用普通语言/原始版本的语言(即无需库/框架的帮助)构建迷你项目。
  • Understand a major library/framework built of any programming language.

    了解使用任何编程语言构建的主要库/框架。
  • Build a real life project using aforementioned framework.

    使用上述框架构建一个现实生活项目。

I didn’t write these requirements out but they were in my subconscious and I tailored my actions accordingly.

我没有写出这些要求,但是它们存在于我的潜意识中,因此我相应地调整了动作。

我如何做到这一点 (How I Achieved This)

了解语法 (Understanding Syntax)

I used Codecademy a lot when I first started pursuing my goals actively. It was really easy to go through and it helped in understanding the syntax of the first languages I was studying.

刚开始积极追求目标时,我经常使用Codecademy 。 这确实很容易完成,并且有助于理解我正在学习的第一门语言的语法。

Eventually, I decided to focus on Javascript and a resource that was more challenging. It was at this point I discovered freeCodeCamp, late last year. The exercises come in bite sized chunks and they let you do most of the thinking after they have shown you the way.

最终,我决定专注于Javascript和更具挑战性的资源。 正是在这一点上,我于去年年底发现了freeCodeCamp 。 演习以一口大小的方式进行,在它们向您显示出方式之后,您可以进行大部分思考。

应用语法 (Applying Syntax)

This is what I believe programming is about— thinking like a programmer. A concept my Technology fellow at MEST, Yaw Boakye harped about when he started us out on Introduction to Technology. Rather than teach us syntax, he gave us difficult problems that will require thinking on our part and employ the use of concepts we have learnt so far, to solve.

我认为这就是编程的意义-像程序员一样思考。 Yaw Boakye是我在MEST的技术研究员,当时是一个概念,当他开始向我们介绍“技术入门”时就了 。 他没有教我们语法,而是给了我们一些困难的问题,这些问题将需要我们自己思考,并使用到目前为止所学的概念来解决。

For this, I used HackerRank a lot at first. This is a site where you are given challenges in your language of choice and you figure out solutions to them. I enjoyed solving those challenges. After the first few problems, I couldn’t solve much else due to the sheer difficulty of the challenges.

为此,我起初经常使用HackerRank。 在这个网站上,您会遇到各种选择语言所面临的挑战,并且可以找到解决方案。 我喜欢解决这些挑战。 在遇到最初的几个问题之后,由于挑战的艰巨性,我无法解决其他问题。

I spoke to another Technology Fellow about this, my friend Jerry Yang and he assured me it was okay if I couldn’t solve those yet. HackerRank problems can be really complex and while nice to be able to solve those, you can take your time as a beginner as those problems are usually so advanced you wouldn’t come across them.

我和另一位技术研究员,我的朋友杨致远(Jerry Yang)谈过,他向我保证,如果我还不能解决这些问题,那是可以的。 HackerRank问题可能真的很复杂,虽然能够很好地解决这些问题,但您可以花些时间作为初学者,因为这些问题通常是如此高级,以至于您不会碰到它们。

At this point, freeCodeCamp came through for me again. Their exercises are very practical and gave me a lot of tough time but were doable for my level and very practical. I spent hours everyday solving those and I thoroughly enjoyed them.

在这一点上,freeCodeCamp再次为我通过。 他们的练习非常实用,给了我很多辛苦的时间,但是对于我的水平和实用性来说都是可行的。 我每天花费数小时来解决这些问题,并且非常喜欢它们。

NB: Here are some challenges I worked on within the first few months of starting

NB:这是我在开始的头几个月从事的一些挑战

用Vanilla Code构建项目 (Building a Project In Vanilla Code)

I probably sound like a broken record by now, but in this instance, freeCodeCamp really helped as well. After every level in freeCodeCamp, campers are given projects to execute. These projects have a few specifications, links to concepts you will need to apply and a sample code.

到目前为止,我可能听起来像是破记录了,但是在这种情况下,freeCodeCamp确实也提供了帮助。 在freeCodeCamp中的每个级别之后,将为露营者分配要执行的项目。 这些项目有一些规范,指向您将需要应用的概念的链接以及示例代码。

These projects involve concepts covered in previous exercises as well as some not covered. With this, I taught myself how to make API requests using XMLHttpRequests. Using functions to separate tasks in an application and so many things that might seem mundane now but were not things I understood back then.

这些项目涉及先前练习中涉及的概念以及一些未涵盖的概念。 这样,我自学了如何使用XMLHttpRequests发出API请求。 使用函数来分隔应用程序中的任务以及许多现在看来平凡的事情,但那时我还不了解。

学习框架 (Learning A Framework)

By now it is clear that my focus has been Javascript-heavy. As such when I wanted to pick a framework to learn, I didn’t look much farther than the most popular Javascript framework — React.

到现在为止,很明显,我的工作重点是Javascript。 这样,当我想选择一个框架来学习时,我看起来并没有比最流行的Javascript框架React更远。

My reasons were:

我的原因是:

  • It had the most vibrant community in the Javascript community from my point of view. Articles on freeCodeCamp, discussion with my friends at MEST (thank you, Oluwole Oyekanmi) and the sheer number of tools built around this framework influenced my decision greatly.

    从我的角度来看,它拥有Javascript社区中最活跃的社区。 关于freeCodeCamp的文章 ,与MEST的朋友进行的讨论(谢谢Oluwole Oyekanmi )以及围绕此框架构建的大量工具对我的决定产生了极大的影响。

  • React Native. I always wanted to build mobile applications but I found Java/Android difficult. I was however still considering developing for iOS after conquering my frontend demons. With React Native however, there was an opportunity to build actual native mobile applications using (mostly) Javascript and this sold me in a way no other framework could.

    React本地。 我一直想构建移动应用程序,但是我发现Java / Android很难。 但是,在征服了前端恶魔之后,我仍在考虑为iOS开发。 但是,有了React Native,就有机会使用(主要是)Javascript构建实际的本地移动应用程序,这以其他框架无法比拟的方式卖给了我。

I didn’t find learning React as easy as learning vanilla Javascript though. I pored over the documentation, and tried the customary to-do list app projects but it still felt a little overwhelming.

我发现学习React并不像学习普通Javascript那样容易。 我仔细研究了文档,并尝试了常规的待办事项列表应用程序项目,但仍然感到有些不知所措。

Unfortunately, freeCodeCamp’s track for React was not out yet and most of the seemingly good courses were paid ones. I kept pushing however and eventually stumbled on a beta version of freeCodeCamp’s React track which helped some. After a while, I understood the concepts of React components, props, and states in React.

不幸的是,freeCodeCamp对React的追踪还没有结束,而且大多数看似不错的课程都是付费课程。 但是我一直坚持不懈 ,最终偶然发现了freeCodeCamp的React版本的beta版本,版本对某些人有所帮助。 一段时间后,我了解了React中的React组件,道具和状态的概念。

It also helped that one of my friends, Tony Kharioki is a React buff. We teamed up for our newco project (MEST’s version of a final year project which is eligible for funding after it is pitched on Graduation Day) called Chowbase which was built with React. Tony was patient enough to hold my hand and provide guidance through the project though handling the bulk of the engineering work while I focused on design.

我的一个朋友Tony Kharioki是一名React Buff,这也有所帮助。 我们联手完成了我们的newco项目(该项目是MEST的最后一个年度项目,该项目在毕业典礼当天就可以募集资金),该项目是由React构建的Chowbase 。 尽管我专注于设计,但在处理大量工程工作时,Tony足够耐心地牵着我的手,并为整个项目提供指导。

现实生活项目 (Real Life Project)

Left to my own devices, I would have preferred to work on a side project to apply my skills in a real life situation with real users. Unfortunately, or rather fortunately, Paystack happened.

如果留给我自己的设备,我宁愿参与一个辅助项目,以将我的技能应用于真实用户的真实生活中。 不幸的是,或者幸运的是,Paystack发生了。

I was hired as a Product Specialist whose job was to help developers trying to integrate Paystack into their products. While I was confident of my skill, I had some imposter syndrome. Nonetheless, I put work in and then some more to get where I should be.

我被聘为产品专家,其职责是帮助开发人员尝试将Paystack集成到他们的产品中。 当我对自己的技能充满信心时,我患有冒名顶替综合症。 但是,我投入了工作,然后再投入一些工作以达到应有的水平。

My first real test was an Android app built for a telco which integrates Paystack. I was not going to mess with Java/Android so I delved into React Native instead and while it was a frustrating it was even more rewarding. With help from my teammates, Onyekachi (providing divine guidance) and IK (handling the backend), I eventually built an app I can look at with pride. I can’t wait for when it is shipped and people start using it (scared too, but whatever).

我的第一个真实测试是为集成了Paystack的电信公司构建的Android应用。 我不会搞砸Java / Android,所以我转而钻研React Native,虽然令人沮丧,但它却更有意义。 在队友Onyekachi(提供神圣指导)和IK(处理后端)的帮助下,我最终构建了一个值得骄傲的应用程序。 我等不及什么时候发货,人们开始使用它(也很害怕,但无论如何)。

While I am still taking baby steps, I am a programmer now. The steps I took in achieving my aim, will not be the same for everyone. Most people’s path or method of learning will be different. It can, however, serve as a guide for one starting out who hasn’t figured how to proceed yet. Even now, I find that when I am learning a new language, I don’t have to go through all these steps — I sometimes dive in and do the work I aim to do.

虽然我仍在迈出第一步,但我现在是一名程序员。 我为实现自己的目标而采取的步骤对每个人而言都不相同。 大多数人的学习途径或方法会有所不同。 但是,它可以作为尚未开始如何操作的入门者的指南。 即使是现在,我发现当我学习一门新语言时,也不必经历所有这些步骤-有时我会潜入并完成我打算做的工作。

This is my story of how I became a programmer.

这是我关于如何成为程序员的故事。

翻译自: https://www.freecodecamp.org/news/in-2017-i-became-a-programmer-here-is-how-ff839e68acc1/

2017年程序员失业潮

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值