How do I start my coding course

This is how you become a programmer and find your first job

Adapted translation of the article "How to become a developer and get your first job as soon as possible"

Ivan Kaptsov

By software developer Sam Williams

Why become a programmer?

If you are planning to become a programmer but are not sure if this is a good idea, here are some things to help you decide:

  1. The demand for developers is great now. For example, for those developing apps for iOS and Android, the competition is less than 2 people per seat. At the same time, the average salary in Moscow is 130-140 thousand rubles, and the maximum salary is 300 thousand rubles per month. The biggest competition for a position as a data analyst is 4.5 résumés per job.
  2. The work is very diverse and interesting. A developer can work on a wide variety of projects: from e-commerce websites to computer games, from mobile applications to artificial intelligence. Almost all skills can be used in multiple areas so you are not tied to one job.
  3. The work can be flexible. Most of the time, you need to read and write code. So you only need one computer. More and more developers are working remotely - from home or while traveling around the world.

How do I become a programmer?

To grow quickly, you need best practices and support from experienced developers.

Attend boot camps

“Boot Camp” - (literally “Boot Camp”) training format that was used for intensive training camps for soldiers: Instead of three years, the training lasted only three months. Many Western business schools have used this format as the basis for training.

The IT Bootcamp is a technical curriculum that teaches the most important parts of programming and adapts them to current market requirements. Students learn from real projects, from people who are successful in the industry and have broad practical skills.

This allows you not to get disseminated but to focus on the most important aspects of programming and immediately use your skills to solve urgent problems. The boot camp can be trained by people with minimal or no technical knowledge.

The only problem is that boot camps usually last 3 months and are in person and can cost anywhere from 35,000 to 65,000 rubles. This is a lot of money, especially if you don't make those 3 months

Find a mentor

This is the ideal way: you start coding with an experienced developer as a mentor. This could be a friend, family member, or just a developer who wants to help you. It's hard to go astray when someone is testing you and what you're wasting your time on. Sounds good, but finding a mentor can be difficult. Not everyone knows the developers personally, but you can turn it down even if you know them, and that's fine. After all, for a mentor, this is additional work.

This is how you get your first job

Try to find a job with an IT company before learning to code. This has a big advantage: you work with experienced developers and you get paid for the practice. At work, you discover the business side of a developer's life. After all, there is no point in making a product that nobody needs, and you also need to learn how to communicate with customers.

Looking for a job

Before creating a plan, you need to define a goal. Your goal is to get a developer job as soon as possible. The sooner you get your first job, the faster you will learn to code, get the help from experienced developers, and the money.

The easiest way to get started in web development. Even if you don't plan to do so in the future, there are a variety of things from web development that you can use in the area you want. Here is a sample list of requirements for the Junior Front End Web Developer job:

What does it take to get a job?

  • knowledge of the front end: HTML5, CSS3 and Bootstrap;
  • the ability to debug a site using the inspector;
  • experience creating responsive browser and mobile websites;
  • a healthy interest in the latest trends and framework conditions;
  • a portfolio in which you can see your development experiences and successes.

If you have any experience with the company this is great but don't worry if not - we'll be more interested in your work / portfolio examples.

How can you impress us (desired skills)?

  • ability to develop WordPress themes from scratch;
  • trust in the customization and integration of WordPress plugins;
  • understand jQuery;
  • experience with PHP (albeit a little);
  • understanding search engine optimization (SEO).

Most common requirements:

  • Knowledge of the front end: HTML, CSS and JavaScript;
  • Ability to create responsive websites;
  • A portfolio that shows your experience and skills;
  • Understanding version control.

Additional skills:

  • Javascript Libraries: jQuery, AJAX, Bootstrap;
  • Debugging skills.

Create a learning plan

We can now create a learning plan. Try to follow it step by step: Difficult things are easier to understand when you already know the simple ones.

HTML and CSS

These are the building blocks of most websites. You need to be knowledgeable about them to get a job. Fortunately, there are hundreds of free and paid resources to help you learn.

Complete the HTML and CSS lessons

Return to learning HTML and CSS at freeCodeCamp and complete the remaining tutorials: Applied Visual Design, Applied Accessibility, and CSS Grids.

Improve Your CSS (Optional)

If you love front-end design and styling there is a cool daily CSS course that teaches you how to create images using just CSS and HTML. This can be useful for an interview.

Learn how JavaScript works

Knowing how to use JavaScript is great, but understanding how it works will allow you to write better code.

For a deeper understanding of JavaScript, I recommend the You Don't Know JS book series. The first two books will help you understand the basics of JavaScript and get you started. They can be read online for free or purchased in print.

Create projects

Another way to improve your skills is to create projects. It can be anything, your goal is to practice with tools that you have little experience with. Bad with arrays? Create an app with a shopping list. Doubt you understand the styles well? Try to make an exact copy of the real site.

Projects should improve your skills. If they are too simple or too complex, stop the project and start it on an acceptable level.

When creating a project, you may need new skills. You need to be able to study on the go.

How to pass the interview

And now you are finally invited to an interview. It's time to shine. Only the lazy haven't written about interviews, so I'll just focus on the most important things.

  • Know your résumé.
  • Do you know the company?
  • Work out
  • Come early, be polite and confident.
  • Ask questions.
  • Track the progress of the interview.

With these tips, you have a good chance of getting a job. If you haven't received an offer, find out why and use it to improve on your next interview.

Conclusion

If you want to become a developer, you should endeavor to get a job in an IT company as soon as possible. A good option would be the position of Junior Frontend Developer. To get a job you need:

  • learn HTML, CSS and JavaScript,
  • create a portfolio of projects.

Once you've done that, it's time to start looking for work.

Prepare well for interviews and keep learning while you wait for a job offer.

Today it is hard to imagine our life without everyday things like laptops and PCs, smartphones and consoles, terminals in supermarkets, automated banking systems, etc. This list goes on for a long time, but they all have one thing in common: It is the programmers who use the "brains" of these modern intelligent devices.

However, before choosing this profession, you need to clearly understand for yourself where to start in order to be successful in this difficult area.

Anyone with basic skills, knowledge, and desire can become a programmer. You also have to decide in which programming direction you would like to work most. In this case there are three main directions.

1. Web programmers are the easiest industry. Contains:

  • Layout designer who creates templates (website design);
  • Server programmer creates site script.

2. Software programmers (medium level of difficulty) are divided into:

  • Software developer;
  • System software developer.

3. Programmers creating games for PCs, cell phones, and consoles - the toughest workspace.

How much study do you need

It all depends on the desire and intensity to gain theoretical knowledge and practical skills. However, there is an unwritten rule that anything can be learned in a year. The main thing is to aspire to learn and constantly acquire new skills. In relation to the age at which you can master this profession, there is also a question of commitment. Some, ages 18-20, have no desire and vital energy, while others reach their goals easily at retirement age.

What knowledge and qualities are required?

Young people who want to connect their school-age programming life should understand that the education they receive at their desk will make their job of mastering the job that much easier.

From the school curriculum, special attention should be paid to the following subjects:

  1. Higher mathematics. In addition to being able to do ordinary calculations, this is one of the few school subjects where you can think, analyze, develop abstract thinking, and draw personal conclusions. These are the skills a person should have;
  2. English language. In this case you need at least "Intermediate with a Dictionary". Ideally, this is a good knowledge of the language of a technical orientation and the ability to translate texts according to specialization. In fact, for the most part, you will have to study and use the documentation, purchase various software, and negotiate with foreign counterparties in order to have an accurate command of English with confidence.
  3. Computer science (programming theory). You need to understand the data types and the basics of working with databases, basic operators and programming languages ​​(in the curriculum these are Pascal and C ++), as well as the basics of object-oriented programming.
  4. Physics. Many people believe that knowing about this topic is absolutely useless in mastering the profession of programmer. However, this opinion can be called incorrect. After all, this field of work can be closely related to physics. For example, the creation of a simulator for a spaceship or sea ship as well as realistic computer games. Knowledge of the incidence and refraction of light, the generation of real movements and deviations of the car under different weather conditions, the realistic representation of water, smoke or fire, etc. may be required.

Necessary qualities for work:

  1. Possessing extraordinary and logical thinking;
  2. Mathematical thinking;
  3. Ability to manage time (not forgetting constant self-study);
  4. The ability to break a large task into subtasks;
  5. The ability to choose the right goal for yourself and the desire to achieve it;
  6. Ability to work in a large team. Large projects cannot be handled alone, and small projects are not in great demand. Discuss unclear problems and close knowledge gaps with more experienced colleagues.
  7. Ability to learn quickly. Technology doesn't stand still. Therefore, in addition to the existing work on your projects, you need to constantly monitor and keep up to date with the latest changes in the information technology field.

Minimal knowledge and skills

According to Google engineers and programmers, any self-respecting specialist in the field of programming must have a set of minimum knowledge and skills to become a professional in the future. And what you need to know to become a high-level specialist:

  • Learn the basics of computer skills in the "Coursera" or "Udacity" correspondence courses.
  • Acquire programming skills in at least one language (Python, C ++, Java);
  • Learn other languages ​​(PHP, Java Script, HTML, CSS);
  • Learn to test the code.
  • Learn to understand algorithms and data structures.
  • Acquire knowledge of discrete mathematics;
  • Study the functions of operating systems.
  • Gain knowledge of artificial intelligence;
  • Learn to create compilers.
  • Familiarize yourself with cryptography and parallel programming.

To get started with practical work, the experts mentioned above advise:

  • Build your own website, server or robot.
  • Develop part of a large system, understand the documentation and codes, and debug the program.
  • Work as a team on a large project. That way, you can learn faster and get used to team interaction.
  • Constantly improve your knowledge and skills.
  • Start teaching others.

Where do you get the necessary knowledge from?

You can acquire the necessary theoretical and practical knowledge in the field of programming yourself in various ways:

  1. Learn from books and magazines. This option can be called standard and has been tried and tested for many years. To save money on "hard copy" purchases, download the most appropriate information on programming from internet sources. Many practitioners argue that the perception of the material under study is best obtained from paper sources. And the need to manually prescribe many different codes allows you to gain some confidence and protect yourself from the passive ways of writing program code such as "copy-paste".
  2. Instructional video courses. They are a great alternative to books and magazines. For the most part, books are written in boring and not always understandable language, without having the opportunity to ask the author an interesting question. Everything is much easier when watching video courses. The main thing that is necessary is to repeat all the actions displayed on the monitor. And in the event of difficulties and incomprehensible moments, you can always ask the author your question in the forum. Another positive aspect of such training is the ability to independently conduct a number of actions outlined in the lesson. Yes, it does this in the form of a clear repetition of the operations performed in the video. However, this process gradually develops the ability to create scripts, applications, and programs independently of one another.

If you have sufficient knowledge, you can evaluate your strengths and compete for programmers on various specialized websites. In order to receive new and useful information and to communicate with “colleagues in the shop”, it is also recommended to visit Internet forums.

Conclusion

Changes in IT technologies and especially in programming languages ​​are constantly taking place. It is necessary to try to keep up with the times and study different literature on a particular field of work. Constantly looking for different ways to solve problems will help improve expertise. By communicating with colleagues or simply with programmers, you can quickly find the right ways to get things done.

The constant use of programming language reference books isn't shameful as you can't keep everything in mind and there are things you don't need to keep track of. Solving a problem (even the simplest at first sight) should be thorough and unhurried. The first time you apply the theoretical knowledge you have acquired in practice, you need to learn how to develop your own solution algorithm.You need to tackle minor programming problems as often as possible and gradually improve your skills. With the experience gained, the programmer can later afford, in addition to the main task, to hold additional paid seminars and consultations and to recruit students. I hope such difficulties did not frighten you and that you will continue to move closer to your goal.

I welcome you back to my blog and today I am trying to answer the question of how you can become a web programmer from scratch as quickly as possible. I have to say immediately that this is basically possible for every person, I don't see any restrictions in this regard. The most important thing is your desire and perseverance.

First step

First of all, you need to decide which technologies you need to learn. That said, you need to clearly understand what you need to learn in order to achieve your goal. Of course, the theory will not end, all the knowledge gained will have to be applied a few dozen times in practice - then it will be hammered into your head much better. So wake up at night afterwards and ask: " and how does @keyframes work in css?"- You will tell everything in detail.

So this very first step is figuring out what you need. I recommend the very popular Geekbrains IT portal. There, by scrolling the page a little, you can see in which direction they are teaching on the portal. We are interested in the web developer profession - this is a web programmer indeed.

At the very bottom, you can see what you will learn when you pay for the tuition.
I've purposely cropped this screenshot a bit to show you which technologies you will need first.

What should a web programmer know?

As you can see this is:

  1. HTML / CSS are the basic languages ​​for markup and design of websites. Without them, creating websites would be inconceivable. This is the foundation, the simplest technologies that you should learn first.
  2. PHP is the main weapon of the web programmer. This language is used to create social networks, online stores, frameworks, engines and much more. It is thanks to him that most of the online services, comment forms, website registrations, etc., work.
  3. JavaScript is a programming language designed specifically for the web. With their help, a page can be programmed to change its design under different events. For example, when you click a window it expands, and so on. There are many examples.

Where can you learn all of this?

First of all, I advise you to take a look at where I write, where you can learn the most basic technologies, namely HTML and CSS. If you're wondering what HTML is in general, read on.

The best option I see is the same Geekbrains... As you can see, the training for a web developer costs 7,000 rubles per month and lasts up to 11 months. If you haven't cheated, you will become a truly sought-after specialist. I understand this can be expensive for most of you, but it is the shortest path to becoming a professional in the profession.

If you choose to study on your own, you can save a lot and the result can also be achieved relatively well. The only negative is that you literally have to gain bit by bit knowledge and courses on various technologies. For example, Geekbrains promises to teach you the following technologies in eleven months: HTML / CSS, PHP, JS, NodeJS, AngularJS, Yii. On the other hand, you don't have to know everything to find a job. I already said what the base is. This is HTML, CSS, PHP, Javascript.

Where can you learn Javascript and along with your most popular JQuery library? I see the best opportunity to buy a course from Evgeny Popov. This is the person who makes really cool training courses so you can count on the quality. Here is a link to the description page.

PHP

Ok, but I don't even know what to say about PHP. Mikhail Rusakov has a reasonable course. Perhaps this is the best way today to bring the technology to a good level from the ground up. Although no, it is best to get training from professionals at the Netology online education center. There students are recruited for training in PHP and MySQL. Here you can sign up. Of course, you have to pay for the training beforehand. One of the advantages of this method is that the company will help you find a job after you graduate. You will receive a certificate and full support.

You don't have to know everything

If you've only studied Javascript (but not PHP), you can work as a front-end developer and, on the contrary, you'll try your hand at the back-end. In general, you can already do something on-site with little knowledge, but the more you know, the greater your potential.

I hope this article answered your question: " How do I become a web programmer from scratch?“You can find some general principles in my other article. There I just write about the importance of learning from professionals and why this is the best way to go. Well, for today I say goodbye to you.

Just a moment for your attention: We all want to host our websites on reliable hosting. I've analyzed hundreds of hosting sites and found the best - HostIQ There are hundreds of positive reviews about it online with the average user rating is 4.8 out of 5. May your websites be happy.

This is the most pessimistic answer to a second question on Quora.com and is even based on a very inspiring thesis: "There are no limits to perfection."

Q: - How do I become a world class programmer in 3 years?

A: - And that's a pretty amusing question, especially considering that you are aiming for a "world class" programmerinstead of just asking how to become a very good programmer.
What do you think is the world level? And how do you measure it?

Consider this situation: If you can solve obscure little problems, you are not a good programmer. It undoubtedly makes you a smart programmer, but that doesn't mean you can solve a big problem someone else created too.

The reality is that you have to look very far and work with systems you already have, and no matter how complex they are, you have to understand them. You haven't contributed a single line, and you're already facing major difficulties, or at least finding them.

And the more of these problems you solve, the better you get. This is what i think:

1. Programming is problem solving. Surround yourself with problems. The more the better. They will seem intimidating at first, but once you start dealing with them things will get easier.

2. Surround yourself with bright people - not necessarily programmers.First, they will use techniques and solutions that you would never have thought of and, second, they will force you to learn and develop. When you work alone, it is very easy to get arrogant and pretend that you have the answers to all of your questions.

3. Expand the number of languages ​​used: to say "C ++ or Java is best, I'll use it exclusively" is pretty stupid; Each has its own subtleties that you can use to your advantage, and they are very useful to master.

4. Don't relax when you have found a good solution to a problem.Rest assured, you only have one of many solutions, so it's not that cool. Be open to new methods and ideas.

5. Work as a team. It's like point 2, just a little different: each programmer has a unique perspective that will help you expand on your own.

A: - Do you allow other people to see your code?Try a service like StackExcange: it's free and people give a lot of great advice on how to improve your code. I began to make significant progress in programming after showing my code to other people.

One MIT professor said, "Work every day for two years and you will be a great programmer. Work every day for two years and learn to work with algorithms and you will be a world-class programmer."

I will paraphrase, "Work every day for two years and use your peers' peers to peer review to become a world-class programmer."

A: - Hmm, I'm not sure if you will ever be able to say "Power unlocked! Now I'm the last level coder".

What could be cooler than asking "What's my rank?" To answer. among some mythical earth developers? I suppose understanding of what you write is better than last week, month, or year.

I think it helps to improve:
- Willingness to learn new things: I've been improving my program since 1996 - and there is still room for improvement.
- the habit of sharing new knowledge: The ability to explain to others is useful to yourself (by the way, not many people can).
- Interest in subject areas outside of programming:the ability to understand various things quickly is extremely important for a programmer - who do I explain this to?

A: - Write the code. Lots of code. Work code.Build your own engine. Write a single True CMS (it will be the same as thousands of others, but lots of discoveries await you in the process). Create your own task tracker. Then add an email client. Let it support plugins too. Are you there? Write your own language for writing plugins and your own interpreter for it.

A: - 10: Practice
20: RTFM (read the following (damn) manual)
30: Use The Right Tools
40: Read someone else's code
50: Develop communication skills
60: Solve code problems
70: practice
80: practice
90: GOTO 10

This is the most important :-)

A: - Oh, I have a favorite quotewhat I read again when I need inspiration. Chris Hasfield (orbiting astronaut) answers questions about Reddit:

Question: What advice can you give to a young person who wants to get into this field?

Chris' Answer: Understand the concerns of your heart and challenge yourself to align your life with them. Every decision you make today, down to what to eat and what to do with your time today, transforms you into who you will be tomorrow and the day after. Try to see who you want to be and begin to mold that person out of your existing self. You won't be one in an hour, but you will do what you think suits you. Don't accidentally let life kick you against the adult you don't want to be.

And then someone made a comic out of that answer:

A: - Do not let yourself be concluded that you are a world class programmer. You are losing the ability to learn! Then what will you be a programmer?

A: - Read lots of code and contribute to open source projects.

A: - Short answer: "Nothing"; long answer: "I'm not sure there is such a thing as a world-class programmer."

Programming is just a means to an end. I am sure that many successful projects have been created by average or good, but not outstanding, programmers, but have met with great success. This is due to the fact that this success is embedded not only in the quality of the code, but also in many other things like vision, passion and so on. So if you want to be a great programmer, you need a lot of practice and versatility. You can eat sometimes.

A: - Three things I know:

1. Don't look for 100% successful ways to get to your goal. They are all different for everyone.
2. Almost all of the best products are not written alone. If you're a genius, find a few more and learn how to communicate with them.
3. All languages ​​are limited (like English) but are constantly evolving. Don't stop developing your and your products.

How do I start the journey? Choose a reputable profession.

Programming is one of the most valuable skills for career growth, self development, and creating something amazing. Ten tips for those just starting their journey into the world of programming by Lifehacker.

The field of study you choose depends to a large extent on why you want to learn programming and how much time you are willing to devote to the process. If you want to become a programmer, you must first sign up for professional courses (Google has compiled a list of skills and courses for those who want to become a software engineer). If you want to create games and websites for fun in your spare time, online courses are your best bet. Bloc made a comparison chart of courses based on download, cost, and reason for learning to program.

Even toddlers are now learning to code. Despite the fact that many child-rearing programs are quite simple, some of them (for example, Scratch) are suitable for all ages. It doesn't matter how old you are, even kid animation apps can teach the basics of programming (edX has a new Scratch curriculum).

Free online training courses and projects (Codecademy, Hour of Code, etc.) can help you write your first program. Tutorials from Khan Academy, Codecademy, Code.org, and others introduce you to the basics of programming and everything you need to know about creating a game, website, or other project. Find the right source depending on the programming language. This is a good place to start, but you need to educate yourself.

Online coding courses offer more training than websites that offer online training in a single language. These courses impart basic knowledge over a period of several months in a university-level classroom. I'm a huge fan of the CS50 Harvard online course (which is free). There are other options as well. You can even get a college education by choosing one of 15 online courses.

If you have a problem or need to find an answer to your question, don't forget the reference books. There is a huge collection of over 500 free programming books on GitHub. A collection of e-books with 24 programming languages ​​is also available.

Sometimes games are the best way to learn. While many coding tutorials teach you how to program simple or complex games, some of the learning sites are games themselves: Code Combat and CodinGame are tools that you can have fun with.

The programming community is full of people ready to help the next generation of programmers. Hack.pledge () is a website to help you find a mentor. Or you can mentor someone else yourself. Teaching what you are learning can help you remember information.