软件自学成才到公司要学历吗_作为一名自学成才的移动开发人员,我在旅途中学到了什么

软件自学成才到公司要学历吗

In this post, I'll share my entire journey about how I became a professional mobile developer.

在这篇文章中,我将分享我如何成为一名专业的移动开发人员的整个过程。

I hope that reading about my experience will help you reflect on your present and your future, and will either help you start your career as a developer or motivate you to move forward in achieving your goals.

我希望阅读有关我的经验可以帮助您反思自己的现在和未来,或者可以帮助您开始作为开发人员的职业生涯,或者可以激励您朝着实现目标的方向前进。

我的大学学位以及这一切的开始 (My university degree and how it all started)

I finished high school with a mathematics-informatics degree in a small town in Romania.

我在罗马尼亚的一个小镇读完了数学信息学学位的高中。

Like most of my friends, you had two choices in terms of cities to go to for university. I chose Bucharest, the capital of Romania.

像我的大多数朋友一样,就大学而言,您有两种选择。 我选择了罗马尼亚首都布加勒斯特。

I grew up thinking that university is a mandatory thing. That probably happens in most countries.

我从小就以为大学是必修课。 在大多数国家,这种情况可能会发生。

All our parents want it for us.

我们所有的父母都希望得到我们。

I never felt a desire to choose a specific degree. Sound familiar? Never saw myself working as something after I graduated.

我从未想过要选择特定学位。 听起来有点熟? 毕业后再也没有看到过自己的工作。

In the end, I chose to go to an economics university in Bucharest. Again there were two options. One was considered a good university, and another where you would pay a lot of money just to get a degree.

最后,我选择去布加勒斯特的一所经济学大学。 同样,有两个选择。 一所大学被认为是一所好大学,另一所大学则为获得学位而付出很多钱。

I took some exams at the first one, without studying, to be honest. And obviously I did not pass.

老实说,我在不参加学习的情况下第一次参加了一些考试。 而且显然我没有通过。

I had to go with the second option.

我不得不选择第二种选择。

Fast forward and I graduated from my economics university. But I graduated two years late. I never had a passion for economics and never saw myself working as a banker. I always thought I wanted to get the diploma, and that's it.

快进,我毕业于经济学大学。 但是我毕业晚了两年。 我从未对经济学充满热情,也从未见过自己是银行家。 我一直以为我想拿文凭,仅此而已。

I never considered how much I paid for that useless degree, but I needed a diploma to be accepted by society, right?

我从来没有考虑过为那个无用的学位支付多少钱,但是我需要一个文凭才能被社会接受,对吗?

I was a failure, with an economics degree, but no experience or knowledge. In the following years, with the help of my family, I managed to create two businesses that failed, too.

我是一个失败者,拥有经济学学位,但没有经验或知识。 在接下来的几年中,在家人的帮助下,我也成功创建了两家失败的企业。

I will not discuss those in the story, but let's just say that I learned a lot. I also played online poker, and I was pretty good at it.

我不会在故事中讨论这些内容,而只是说我学到了很多东西。 我也玩在线扑克,我非常擅长。

Seven years after graduating from high school I found myself with no job experience, no successful business, and no money.

高中毕业七年后,我发现自己没有工作经验,没有成功的生意,也没有钱。

I knew I had to take action, and I knew that all my dreams about having a successful business would not happen soon unless I had a backup plan.

我知道我必须采取行动,而且我知道,除非有备用计划,否则我关于成功经营的所有梦想不会很快实现。

That's when I thought:

那是我想到的时候:

What job can I get that will make me happy, pay me well, and allow me to have a good life at 30 - 40 years old, even if I never manage to create my own business?

即使我从未成功创立自己的公司,我能获得什么工作使我快乐,薪水丰厚,并让我在30至40岁的时候过上美好的生活?

The only answer that came to mind was programming. I had some prior experience in high school and built a few websites.

想到的唯一答案是编程。 我在高中时曾有过一些经验,并建立了一些网站。

There was only one problem – I did not like mathematics in high school, and I always thought that I would not be able to learn professional programming without an excellent understanding of it.

只有一个问题–我不喜欢高中的数学,而且我一直认为,如果没有很好的理解,我将无法学习专业编程。

I was wrong.

我错了。

There are probably a lot of people like me, people who have the same thoughts and doubts. But all you have to do is take action and start learning.

可能有很多人像我一样,都有相同的想法和怀疑。 但是您要做的就是采取行动并开始学习。

学习Android和Java (Learning Android and Java)

It was 2014 when I first started looking into the idea to learn to code.

在2014年,我第一次开始研究学习编码的想法。

First thing I did was to Google for some courses in Bucharest, and I found a company that invited me to their offices. I went there, and I remember they had a lovely furnished office with a lot of iMACs. I told myself, "That's what I need."

我做的第一件事是去Google在布加勒斯特(Bucharest)学习一些课程,然后我找到了一家公司邀请我去他们的办公室。 我去了那里,我记得他们有一个布置精美的办公室,里面装有很多iMAC。 我对自己说:“这就是我所需要的。”

Ten minutes later I found that they were doing all their courses online and that it was more like an office to sell the course rather than do the course.

十分钟后,我发现他们正在在线上所有课程,这更像是办公室出售课程而不是进行课程。

I don't remember the exact price, but it was around 1500 - 2000 USD. I didn't take it.

我不记得确切的价格,但是大约是1500-2000美元。 我没有

I let go of the idea for a few months, then 2015 came. New year, new plans, new life, you know?

我放弃了几个月的想法,然后是2015年。 新年,新计划,新生活,你知道吗?

I started to look into an in person course again, and found out that they were called bootcamps.

我再次开始亲自考察课程,发现它们被称为训练营。

Discovered one in Bucharest and they were doing Java, and it only cost around 800 USD for four months. It would be a few hours a day with a teacher and other students.

在布加勒斯特发现了一个,他们正在做Java,四个月的费用只有800美元左右。 一个老师和其他学生每天要几个小时。

Looking back, I think they were cheap for what they offered, but I think we were the second batch they had.

回顾过去,我认为它们的价格相对便宜,但我认为我们是第二批产品。

They were telling us all kinds of things about being hired after the bootcamp, but I did not care.

他们告诉我们有关训练营后被录用的各种事情,但我不在乎。

I wanted to learn to code, and I thought that I would manage to find a job quickly after just a few months. I was right, but it was not as easy as I thought.

我想学习编码,而且我认为短短几个月后,我将很快找到工作。 我是对的,但这并不像我想的那么容易。

The classes started. They always told us that it is not enough to do only lessons during our hours together.

课程开始了。 他们总是告诉我们,仅仅在我们的时间里上课是不够的。

I tried to listen. But at home, things never made sense. Programming was hard, and I often thought that I would not be able to finish the bootcamp.

我试着听。 但是在家里,事情从来都没有道理。 编程很辛苦,我常常以为我无法完成训练营。

I pushed myself harder and harder. It was one month into the courses when I found that we were going to learn Java with Android, but again, I did not care. I was falling in love with Eclipse and things happened on the screen as we coded.

我越来越努力地推动自己。 当我发现我们打算使用Android学习Java时,已经上了一个月的课程,但是我又不在乎。 我爱上了Eclipse,并且在编码时屏幕上发生了事情。

Eclipse is an Integrated Development Environment that was originally used to develop for Android. Now we use Android Studio.

Eclipse是最初用于Android开发的集成开发环境。 现在我们使用Android Studio。

It was hard. Lesson after lesson I was trying to learn variables, classes, inheritance, encapsulation, for loops, and so on.

那个挺难。 上课后,我试图学习变量,类,继承,封装,for循环等。

But I struggled. I didn't have a clear picture of how I could use all these in a bigger app. It did not make sense a lot of times.

但是我挣扎了。 对于如何在更大的应用程序中使用所有这些功能,我没有清楚的了解。 很多时候没有意义。

If you just started programming and you feel the same, I want you to know that it's normal.

如果您刚刚开始编程并且感觉相同,我希望您知道这是正常的。

Our mentors always told us: "You do not have to know all these off top of your head. Just try to understand what they are and how you can use them."

我们的导师总是告诉我们:“您不必完全了解所有这些内容。只需尝试了解它们是什么以及如何使用它们即可。”

They were right, but I found that out later. At that specific moment in time, it did not help.

他们是对的,但后来我发现了。 在那个特定的时间,它没有帮助。

One thing which I regret is that I did not do projects from the beginning. I always thought that I needed a teacher and that you cannot learn anything online on your own. I was lazy and again, wrong.

我后悔的一件事是我从一开始就没有做过项目。 我一直以为我需要一位老师,而且您不能独自在线学习任何东西。 我又懒又错。

After four months, I managed to make my first "non-working" app. It was an app where students could rent rooms from other students or people.

四个月后,我设法制作了我的第一个“不工作”应用程序。 这是一个应用程序,学生可以在其中租用其他学生或其他人的房间。

I said "non-working" because it did not have any backend or any users. It was more like a demo app that was using some SQLite for storing data.

我说“不工作”是因为它没有任何后端或任何用户。 它更像是一个演示应用程序,它使用一些SQLite来存储数据。

I was proud of it, because a few months before, I never imagined I could do it.

我为此感到自豪,因为几个月前,我从未想象过我能做到。

The bootcamp finished, and I don't think I ever spoke with anyone from their management again.

训练营结束了,我认为我再也没有与他们管理层的任何人交谈过。

Not sure if they tried to get me a job, or maybe they thought I was not good enough for a career as a developer.

不知道他们是否试图让我找到工作,或者他们认为我不足以从事开发人员的职业。

初次面试和作为初级Android开发人员的第一份工作 (First interviews and first job as a Junior Android Developer)

I started interviewing, and I remember that my first one was for a Java role at a big international company located in Bucharest. (Hint: they have over 300,000 employees, and their revenue from 2019 was about 77 billion.)

我开始面试,我记得我的第一个是在布加勒斯特的一家大型国际公司担任Java职位的。 (提示:他们有30万员工,从2019年起他们的收入约为770亿。)

I did not take the interview, but I think that the conversation was a good one. I probably wasn't hired because I didn't have any experience.

我没有参加面试,但我认为谈话是一场很好的谈话。 我可能没有被录用,因为我没有任何经验。

After that, it took me another month to get the next interview.

在那之后,我花了一个月才得到下一次面试。

A friend I made in the bootcamp helped by recommending me. If he reads this post, I want to thank him.

我在训练营结识的一个朋友推荐了我。 如果他读了这篇文章,我要感谢他。

The role was actually as an Android developer for a Romanian outsourcing company that had a contract with a telecom company.

这个角色实际上是作为罗马尼亚外包公司的Android开发人员,该公司与电信公司签有合同。

I had two interviews with them, mostly technical questions, and I still remember when they called to offer the role.

我对他们进行了两次采访,主要是技术性问题,而且我仍然记得他们何时打电话提供职位。

The salary was small, but it did not matter.

薪水虽小,但没关系。

I think I started the bootcamp at the end of May 2015, and I began my first role as Junior Android Developer in January 2016.

我想我于2015年5月底开始了新手训练营,并于2016年1月开始担任初级Android开发人员的第一个角色。

It was quite an achievement.

这是一个很大的成就。

My manager assigned me a project, and then I started learning about version control and how to work Agile, and how to work in 2 weeks sprints.

我的经理为我分配了一个项目,然后我开始学习有关版本控制,如何工作敏捷以及如何在2周的冲刺中工作的知识。

If you've started learning programming or you want to start, I recommend three things.

如果您已经开始学习编程或想开始编程,我建议您做三件事。

  • Start today (Optional if you already started)

    从今天开始(如果已经开始,则可选)
  • Do as many projects as possible

    做尽可能多的项目
  • Learn version control (Git, Bitbucket, or Gitlab) and push all your projects there.

    了解版本控制(Git,Bitbucket或Gitlab)并将所有项目推送到那里。

Maybe I will write another article about all these things.

也许我会再写一篇关于所有这些事情的文章。

During my time at that company, I met a lot of friendly and helpful people. I was probably annoying to a lot of them because, at the beginning, I was asking for a lot of help.

在那家公司期间,我遇到了很多友好而乐于助人的人。 我可能对许多人感到烦恼,因为一开始,我一直在寻求很多帮助。

新国家和更多Android职位 (New country and more Android jobs)

9 Months later I decided that I wanted to move to London because I was getting a lot of messages from recruiters. Also I thought that it would be easier to further my career there, then return to Bucharest.

9个月后,我决定搬到伦敦,因为我收到了很多招聘人员的来信。 我还认为,在那继续我的职业会更容易,然后回到布加勒斯特。

I was lucky that my sister lived there, and she was kind enough to let me live with her.

我很幸运我姐姐住在那里,她很友善,可以让我和她住在一起。

Even when I had recruiters promising me interviews and stuff like that, when I got there I had zero meetings.

甚至当我有招聘人员向我保证面试之类的事情时,我到那里时也只有零次会议。

I knew that it would not be easy, and I applied to a lot of jobs online.

我知道这并不容易,因此我在网上申请了很多工作。

After two weeks, I got an interview at a British Telecom services company. They had a small IT department, and their Android developer was leaving. They had internal Android CRMs apps, used by their employees, and they needed someone for maintenance and to develop new apps.

两个星期后,我在一家英国电信服务公司接受了采访。 他们只有一个小型IT部门,而他们的Android开发人员正在离职。 他们有内部的Android CRM CRM应用程序,供员工使用,他们需要有人进行维护和开发新的应用程序。

It was a one year contract, and the pay wasn't great (I found that out later), but again, I was happy.

那是一年的合同,薪水不高(后来我发现了),但是我还是很高兴。

I learned a ton in that year (on my own).

那年我(自己)学到了很多东西。

I learned Android specific technologies like:

我学习了Android特定技术,例如:

  • What's an architecture like Model-View-Presenter and how to use it in an app

    什么是像Model-View-Presenter这样的架构,以及如何在应用程序中使用它
  • How to do proper Unit Testing

    如何进行适当的单元测试
  • The SOLID principles

    SOLID原则

And so on.

等等。

I learned all that at work and in my free time. I was working, and in my spare time, I was building apps for myself.

我在工作和业余时间学到了所有这些。 我正在工作,在业余时间,我正在为自己构建应用程序。

To this day, all my apps (5 on Android) have more than 100k downloads, mostly organic, but only one of them made more than 2,000 USD.

到目前为止,我所有的应用程序(Android上为5个)下载量均超过10万,大部分是自然下载,但只有其中一个收入超过2,000美元。

I worked for the telecom company for precisely one year. I wanted to try something different thing in London and work with more Android developers.

我在电信公司工作了整整一年。 我想在伦敦尝试一些不同的事情,并与更多的Android开发人员一起工作。

It took me some time to understand that, as a software developer, you always have to do more than what you do at work. It's the same with doctors or lawyers. They regularly need to improve their knowledge to be better than others.

我花了一些时间来理解,作为软件开发人员,您要做的总是比工作要多。 医生或律师也是一样。 他们经常需要提高自己的知识,才能比别人更好。

I felt ready to work on a more significant project, but I don't think I was skilled enough.

我准备进行一个更重要的项目,但我认为我不够熟练。

It did not discourage me, and I took an Android role at a global outsourcing company.

这并没有阻止我,我在一家全球外包公司担任Android职务。

I was going to work for a big British bank in London.

我本打算在伦敦的一家大型英国银行工作。

I was scared initially, but it took me one month to feel like I was part of that project.

最初我很害怕,但是花了一个月的时间才觉得自己是该项目的一部分。

I did three interviews before I entered the project.

在进入项目之前,我进行了三次面试。

During my career, all the interviews I did had two or three steps.

在我的职业生涯中,我所做的所有采访都分两到三步。

The first one is usually with HR where they ask you things about your experience.

第一个通常是在人力资源部门,他们会问您有关您的经历的事情。

The second interview could be with technical questions, take-home assignments or technical questions with some algorithms.

第二次面试可能涉及技术问题,实地作业或某些算法的技术问题。

The third interview might be with a tech lead or with a manager or again with someone from HR.  

第三次面试可能是与技术负责人,经理或与人力资源部门的人员再次面谈。

I started working at the bank in a proper Scrum team. We were 4 Android devs, 4 iOS devs, a Project Manager, a Product Owner, 2-3 Quality Assurance Engineers, a Business Analyst, Copywriter, Designers.

我开始在适当的Scrum团队中在银行工作。 我们是4位Android开发人员,4位iOS开发人员,项目经理,产品负责人,2-3名质量保证工程师,业务分析师,撰稿人,设计师。

All these people were developing a crucial part of the app. The project was massive.

所有这些人正在开发应用程序的关键部分。 该项目规模巨大。

Just in the development team there were more than 30 Android and more than 30 iOS developers.

仅在开发团队中,就有30多个Android和30多个iOS开发人员。

I stayed at that role for one year, like with my previous job. The reason? I wanted to go back to Romania.

我曾担任该职位一年,就像之前的工作一样。 原因? 我想回到罗马尼亚。

I was lucky enough to have only good colleagues around me.

我很幸运,身边只有好同事。

It's never wrong to ask for help if you want to learn. We've all started from the beginning, with zero knowledge. I feel that it's terrible not to want to learn when you don't know.

如果您想学习,寻求帮助是永远不会错。 我们都是从零开始,从零开始。 我觉得在您不知道的时候不想学习真是太糟糕了。

The year at the bank taught me a lot, and it felt like a few years. I learned:

在银行那一年教了我很多,感觉就像几年。 我学会了:

  • How to do code reviews

    如何进行代码审查
  • How to work on a project that required 100% code coverage for Unit Testing

    如何在需要100%代码覆盖率进行单元测试的项目上工作
  • How to deliver features on time

    如何按时交付功能
  • What is clean architecture and how to write code that's easy to read without leaving a ton of comments

    什么是干净的体系结构以及如何编写易于阅读而又不留下大量注释的代码

And many more that I probably don't remember.

还有更多我可能不记得的事情。

带着更多的知识回到家 (Going back home with more knowledge)

It was November 2018 when I went back to Bucharest, after two years and a bit of living in London.

在伦敦呆了两年后,我回到布加勒斯特是2018年11月。

It was an excellent experience, but it did not feel like home.

这是一次很棒的经历,但感觉并不像家。

I got a new job for another outsourcing Romanian company quite fast (2 weeks) after I came back.

回来后,我很快(2周)就为罗马尼亚的另一家外包公司找到了一份新工作。

It took me only four months to leave again for a new six months project in London.

我只花了四个月的时间再次离开伦敦,开始了一个为期六个月的新项目。

I was not happy to leave my girlfriend alone, but the money was good for only six months of work.

我不愿意让我的女朋友一个人呆着,但是这笔钱只用了六个月的时间就赚了。

I'm not allowed to disclose any information about the project because I signed a non-disclosure agreement, and today I'm still working for them. But I'm located in Bucharest right now. I've been working for the current company for more than a year and a half.

由于签署了保密协议,因此我不允许透露有关该项目的任何信息,而今天我仍在为他们工作。 但是我现在位于布加勒斯特。 我在目前的公司工作了一年半以上。

What did I learn on this project?

我从这个项目中学到了什么?

  • How to create a team

    如何建立团队
  • How to start a big app from scratch. I will probably be very proud once we launch and people will use it.

    如何从头开始大型应用程序。 一旦启动,人们将使用它,我可能会感到非常自豪。
  • How to adapt requirements with a lot of unknowns.

    如何适应许多未知的需求。
  • How to deliver by working with people all over the world.

    如何与世界各地的人们合作实现目标。

It's been a crazy journey.

这是一次疯狂的旅程。

结论和我学到的 (Conclusion and what I learned )

My post is at over 2000 words, and I feel I did not give you a lot of details about what I learned. I only scratched the surface.

我的帖子超过2000字,而且我觉得我没有为您提供很多有关我所学到的信息。 我只刮了一下表面。

It was not easy, but I don't regret choosing this career.

这并不容易,但是我不后悔选择这个职业。

If you are me from 5 years ago, just start.

如果您是5年前的我,那就开始吧。

You will feel like quitting. You will think that you are not smart enough, you will feel like any developer that takes a few hours/days to solve something without any luck and then has a moment of brilliance.

您会感到戒烟。 您会认为自己不够聪明,您会觉得自己像开发人员一样,需要花费数小时/天的时间来解决某些问题,但运气不佳,然后有一点光彩。

It's not wrong not to know, and no question is stupid. It's terrible if you don't want to learn.

不知道是没有错的,而且没有问题是愚蠢的。 如果您不想学习,那就太糟糕了。

Today, more developers than ever are willing to help. You can easily find Discord groups where people are happy to answer your programming questions. There are a lot of Reddit communities that will be helpful. Maybe even Slack channels can work for you. Finding a mentor can be a solution too.

如今,有更多的开发人员愿意提供帮助。 您可以在人们乐于回答您的编程问题的地方轻松找到Discord组。 有很多Reddit社区会有所帮助。 也许Slack频道也可以为您服务。 寻找导师也可以解决。

Websites and YouTube channels like freeCodeCamp are all you need to get started.

网站和YouTube频道(例如freeCodeCamp)都是您入门所需的一切。

Here are all the things I hope you learned in this post:

这是我希望您从这篇文章中学到的所有东西:

  • Starting is hard, but every day of learning something new will give you enormous satisfaction.

    开始是很难的,但是每天学习新的东西都会带给您极大的满足感。
  • You need to do all kinds of projects. Knowing the basics is good, but building things and working with version control will help you prepare for a future job.

    您需要做各种项目。 知道基础知识是件好事,但是构建内容和使用版本控制将帮助您为将来的工作做准备。
  • People are willing to help (both online and future colleagues)

    人们乐于提供帮助(在线和未来的同事)
  • There will be days when nothing will work. You will not find a solution easily. Either relax and come back to the problem later or just ask for help.

    有时候,什么都不会起作用。 您不会轻易找到解决方案。 放松一下,然后再回到问题上,或者只是寻求帮助。
  • All developers (junior, mid or senior) search for solutions on Google and get stuck frequently.

    所有开发人员(初级,中级或高级)都在Google上搜索解决方案,并经常陷入困境。
  • You will feel impostor syndrome, but trust me when I say that I met developers with CS degrees who are worse than me.

    您会感觉到冒名顶替综合症,但是当我说我遇到了比我更糟糕的CS学位开发人员时,请相信我。
  • Being a developer it’s not only about coding. Soft skills are important too.

    作为开发人员,不仅要编码。 软技能也很重要。

If you liked this article and want more of this, please follow me on Twitter. I write about my journey as a mobile developer, my failed/successful start-ups, about app marketing, and all kinds of other things I learned in the past 10 years.

如果您喜欢这篇文章,并希望得到更多,请在Twitter上关注我 。 我写了有关移动开发人员的经历,失败/成功的初创公司,应用程序营销以及在过去十年中学到的所有其他内容的文章。

翻译自: https://www.freecodecamp.org/news/reflections-on-my-journey-as-a-self-taught-mobile-developer/

软件自学成才到公司要学历吗

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值