Onboarding Web-Development
Alex Pletnov

Onboarding Web-Development

way

Nowadays, software developer is a mainstream occupation in some countries. For example, in Ukraine it means you would be paid more than average, because of constant deficit of developers in the rapidly-growing industry. As a result, there are always lot of people who want to become software developers, but they don’t have industry-specific education.

So what do they do? They do a self-education course or a specific one with coaches and trainers. Anyway they have to be extremely lucky to get on board of some software company and start their carrier as trainees.

In the article below we would like to share our experience within few advices for people who decided to start their carrier as web-developers.

Communication

way

You may have thought that usually developers only sit and code. The myth will be debunked! Before it gets to actual coding, each software only exists as an idea in someone’s mind. If you start coding without getting this idea, there are chances you will build something different from what is needed. It may have great architecture, performance and may be covered with tests, but still it may be useless.

The first thing each developer should learn is quick and accurate understanding of his tasks. Obviously, it is great if you can just read client’s mind (let us know if you do — we’d love to hire you), but if you don’t, be ready to:

  1. be able to communicate with client in English
  2. ask correct questions if you don’t understand the task in all details
  3. use some kind of task-tracking systems like Trello, TeamworkPM or Jira to store all the details on tasks
  4. share understanding you got with others either informally, or by preparing requirements or documentation

Communication is an art. I’d say it is sometimes even more important than actual coding. That’s why I’d recommend you to check your level of English and get some practice in communication as a first thing to do.

Algorithmic Thinking

way

Apparently, the only understanding of a task isn’t enough to complete it even though understanding is an absolute necessity. Once task is clear, a developer should prepare algorithms that would implement what’s needed. This is an actual converting of an idea into a program. Sometimes it’s pretty easy and can be done intuitively by anyone, but sometimes it requires making complex diagrams and may be time consuming.

Algorithmic thinking is a skill that can be trained. For example, you can try to imagine all the flows of a program you are working on before you actually start coding. The more you practice, the quicker and more accurate image you’ll get. It will give you a chance to foresee its development and avoid mistakes. You can also check services like CodeFights to train ability of solving programming tasks, but it would require knowledge of programming language (see below).

Programming

way

Finally, that’s the part, where you start actual coding. Usually this is what drags most of attention and there are plenty of articles on this topic. Let’s have a quick glance.

First of all, try to get some general understanding of client-server model, HTTP, caching, DNS and other concepts commonly used in web-development. I’d recommend you to start with some article on Wikipedia and follow links on subjects you feel you should get familiar with.

Web is based on JavaScript, HTML and CSS and you definitely need to understand what they are for and be able to use them. You can start with Codecademy courses or any other ways.

In most cases you’ll use some frameworks or set of libraries for development, so you need to study them as well. We would definitely recommend you to study React and Meteor as most promising frameworks which we use almost for every single project.

To store your data, you would need to use database. Knowing how to work with MongoDB and SQL-databases is also must-have for backend or full-stack web-developer.

You’d also need to know git as a safe method for collaborative work with sources. Study how to run basic operations, how to merge conflicts and get familiar with Gitflow.

If you don’t have experience with Linux — consider transitioning to it as your main OS. Most of the web-servers run it and most of the tools would work best with it.

Attitude

way

Another thing crucial for collaboration is a correct attitude. No matter how great you are as a developer, if you aren’t reliable enough, you may cause significant issues for anyone who works with you. Of course, everyone wants to think of himself as of reliable and highly-motivated person, but try to think critically — maybe there’s something to work on.

How to make recruiters want to hunt you?

way

Let’s say you’re done studying everything above and want to get on board of a software-development company. What should you do to make recruiters hunt you?

First of all, prepare a great resume. Who told you a resume should be brief and reveal only your experience and skills? Have you ever thought how recruiters choose someone from a list of resumes with the same sets of skills?

At Keenethics we highly appreciate essay-like resumes that not only tell us about your skills and experience but your greatest targets, hobbies and passions as well. We want to hear your story.

Schedule

way

How long will it take to become a web-developer?:

  1. Depending on your level of English you may need some time to improve it. Let’s assume you are able to read articles in English a 2-month intensive training (attending lessons 3 times a week and watching films or TV-series exclusively in English), may get you into a much better shape.
  2. Spending about 30 minutes a day reading Wikipedia about general programming and web-concepts for about 2 months will give you an overall image of different technologies and relations between them. If you add another 15 minutes reading the latest news about web-development you may also get some understanding of current trends.
  3. Spending another 60–90 minutes a day for 2–3 months on studying actual programming you may also get knowledge required for initial onboarding. E.g. you’ll be able to complete HTML/CSS, jQuery, JavaScript and Git courses at Codecademy during one month. Also you can spend another month completing React and meteor tutorials.
  4. If you do not use Linux currently, I’d highly recommend you to switch to Ubuntu. It may take you about 2 hours to set it up, and you’ll have to spend another 30–60 minutes a day during first two weeks studying how to use it.
  5. You’d need to spend an hour or two writing your essay-like resume and you are good to go.

This way I believe that anyone who likes algorithms, is comfortable with computers, wasn’t bad at math at school and has intermediate English level, can get prepared for becoming a trainee in software development in 2–3 months. Is it too long?