What is coding and why should I choose to become a developer?

Silicon Valley-related movies attract hundreds of passionate young men and women to the coding world, dreaming of becoming the next Bill Gates, Steve Jobs, or Mark Zuckerberg. But what about this fantasy is real and how can you achieve these dreams? Well, this article is precisely about this subject.

It is very easy to enter the world of clichés and we often have a preconceived vision of the profession of our neighbors, and before knowing how to become a developer, a small personal and evocative definition of this beautiful profession is welcomed. Programming could be ideally defined as: “Learn and understand the world around us to create, almost magically, endless possibilities”.

More concretely, we can draw a simple parallel with cooking, an example specially conceived for the gourmets among you.

The good news is that anyone can cook, you can create an app, a website, and much more.

Millions of people, just like you, can cook a good meal. Do you want to know how? Well, all you need to cook food or to code and therefore make people happy is:

  • Ingredients (quality if possible): An explanation of the subject on which to work (specifications) and of the data (also of quality if possible).
  • A cooking recipe: all the rules to follow (specifications) so that the application does exactly what is expected of it.
  • A place to cook: the development environment
  • Kitchen equipment: design tools, tools for consulting data, “libraries” and “framework”, test tools, deployment tools, etc.
  • A room to receive people who are going to taste: Your mobile phone, your internet browser, your car, your household appliances, etc.
  • And well, even the best chef makes mistakes from time to time so the bugs are a bit like fish bones in your meal: the important thing is that the cooker did his best and he will be prepared to work on his mistakes to improve every day.

You have understood, if we change the terms a little, we remain on the same principles.

The ways of working can vary as in the kitchen, you can cook for yourself and your friends, be a “home chef” or be part of a team of cooks where you have to prepare meals for 200 people.

Sometimes generalist, sometimes specialized, the job of a developer is as exciting as it can be varied, with the pleasure of creating and offering.

What can I work for if I become a developer?

To develop is to process information to meet a real-world need. Then, there are billions of subjects and needs of real people, out there, that haven’t been covered yet so, does it mean that a developer must know a lot about everything? Let us take a few examples in which there are computer programs created by developers:

  • Medical imaging
  • Aerospace
  • Taxes
  • Research in mining geology
  • Sewing
  • The music
  • Transportation
  • Hospitality
  • Finding love, etc.

Luckily, there are several answers, but in all cases, the applications created are based on “business areas”, that is, the real-world subjects on which the data to be processed is based.

The developer can work for him (small personal programs) but he can also evolve into a “brigade” (large projects, often large companies or collaborative “open source” projects).

Depending on the project, you could be an orchestra man who knows some about each instrument and therefore can guide everyone’s effort to create a masterpiece. Anyway, you could also be a musician who cares only about the technique and who focuses all his energies on mastering his instrument to become the best on it. In the end, you cannot play all the instruments at the same time that’s why the work is divided into different professions (business / functional expert, head of the project, technical expert, developer, designer, tester, etc.).

The good news is that depending on your desires, tastes, and skills, you can focus only on technique, or even go as far as meeting the client to support them in their needs. Over time, it is even possible to pivot on other areas you had never imagined reaching. The world is full of possibilities for you!

How is the daily routine of a developer?

The extreme sedentary case. You work for a company that wants you to be there because it pays your services “for the whole shift” to develop a project over several months. The application on which you work is critical and your workstation is secure, you do not have the right to take the work with you at home at night, and you have signed a non-disclosure of data clause, which can send you to prison, and so on.

The extreme nomad case. You work on your own for several clients or missions. You are in complete autonomy on the project, or you are part of a team made up of a client with several providers who have set up collaboration/sharing tools that allow everyone to work, as if everyone was in the same room.

Between these two worlds there are of course several variations, but why not choose the ones you want and orient your choices according to your own life goals?

Well, independently of your final decision of life, let us try to take the most standard routine because not everyone is developing in a blockhouse or sipping a cocktail on a bar terrace.

Most of the time the day starts at 9:00 a.m. and ends at 6:00 p.m., it is often possible to adjust your schedules to start a little earlier and leave a little earlier, priority being given to respecting the schedules and the necessary joint meetings to the team in place.

And what is the typical week like? If you open your mind a little bit, it is more relevant to talk about a typical week, because development will not necessarily be the developer’s only activity. There will therefore be meetings that will depend on the project methodology used (V cycle, agile methods, etc.). It is important to have feedback on each person’s progress, to have a global vision of the project, to discuss the difficulties together, and to be able to respond to them. A sense of belonging is important, as well as helping each other. Knowing where to find oneself also makes it possible to answer the famous question of what “remains to be done”.

This last question is extremely important since the developer must be able to estimate how much time it will spend to develop a feature. It is a difficult task. This is why the project manager must continually ensure that the “estimated” tasks do not drift and plan for the necessary actions as soon as possible (plan a code review by a more experienced developer to help the beginners progress faster or, if necessary, put them to work together temporarily on a complex issue, find simplifications if the imagined implementation is too complex, or renegotiate the need with the client to achieve the objective on time / on budget, etc.).

How will your successes as a developer will be measured?

The developer must rely on specifications to achieve the functionalities requested of him. These are generally documented in Word format, written by a “business” analyst who translates the needs expressed by the customer (specifications, expression of need, email, etc.) into functionalities. The document must explain how these features will be implemented and will work with each other (the input screens, the rules to follow when the user performs certain actions, the rules to follow in the event of an error, etc.)

Depending on the project (this is often the size of the project) the developer may make the specifications. Sometimes they do not exist, and the developer implements feature directly from an email. Without being an expert, it is easy to imagine the following: What would happen if we built a house without a plan? Not to mention the day when the developer is no longer there, and others must work on the house. Then planning is the first step, but there is still too much to be done.

When writing your code, testing is essential. You must make sure that the features will fit together in the end bug-free. Therefore, it is important to test your work as the software is built. In the building, once the foundations have been completed, the concrete is tested by an inspection body to ensure that the foundations will comply. Well, in I.T., it is the same!

Another part of the week could be dedicated to “delivery”. This consists of making a version of the application available, often on an integration environment, then on a production environment. Take the case of a train, say their design. It is more reassuring than after the design, the Amtrak tested the train, up to its limits on a track closed to the public, in complete safety before sending it at 300 km / h on the public rails.

Last part of your professional development: training or self-training. Either in the form of sessions, or a little every day or every week, training is an important point in the life of a developer. Changes are surprisingly and market demands are constantly evolving (developer profile in tension, specializations that appear). Keeping abreast of trends and training in certain areas allows you to keep a CV up to date and evolve.

How much money will you make as a developer?

We will use the building analogy again. A developer can be a generalist and design and build a house from A to Z. They can also be more specialized. Some will do what is “visible”: the framework, the walls, the painting, etc., and others what is invisible: the water and drainage networks, the foundations, the insulation, etc.

Like any profession, the experience will come into play, but also the place from which you work. Salaries in Silicon Valley are higher than in Saskatchewan compared to the cost of living. It is therefore interesting to hire a developer living in rural communities or smaller cities who has expertise in a specific subject and work remotely with them. It is a win/win because the company has a motivating resource to work from home, without traffic jams and benefits from skills at a lower cost. Of course, the organization of the project must allow It, but it is possible!

Be careful with the numbers you will find on the Internet; it happens that IT companies publish offers that do not exist. They do this for several reasons (this is a personal analysis, to be challenged of course):

  • Constantly update a “pool” of profiles ready to respond, to tap into it when a project arrives (you must be able to set up teams quickly). This makes it possible to build an up-to-date internal CV-library.
  • Maintain an active corporate image, with frequent offers demonstrating attraction to listening candidates (feeling that the company is only growing and recruiting)

It can be good to have this scheme in mind, to be vigilant about the environment in which you want to operate (it is often the large groups that keep pools up to date). Please note this is not a generality, but it may influence the official figures and the “computer shortage”. There is a strong demand, to be sure, but it is not the door open to all windows either!

The last point to think about, the working environment, if you are employed in a specialized company or independent (freelance) things can be radically different (they are not the same charges)! You also need to know how to consider the time spent “producing” and the time spent training and looking for assignments/clients. So, anticipate!

How much you earn as a developer depends extensively on two main variables: your experience and your specialization. For instance, we can find the next data about developer’s salary:

  • Beginner: $50,000/year
  • Late-career developer: $85,000/year
  • Entry-level data scientist: $90,000/year
  • Cybersecurity engineers: $95,000/year
  • Network engineers: $72,000/year
  • Web developers: $60,000/year

What do I need to build my path to success in coding?

One important question you will need to answer when you go to work in the real world is where you want to direct your professional life. Even though there are almost endless answers to that question, it is possible to divide your multiple options into two main categories:

Benefits of IT service companies. The specialized company that will hire a developer will provide him with the projects he will work on, the necessary organization, guarantee his career development and training, pay employer charges, work stability, etc.

Benefits of independent work (freelance). A freelancer will have to manage all the parameters, but with a little organization and visible missions (over several months) it is possible to develop a completely different lifestyle, so there is something for everyone! You can also do your business experience and then become an entrepreneur.

But, no matter what option you choose, you will need to be skilled enough to be competitive in the labor market. Talent is good, but constant improvement is better. Development is a bit like music, you need basic knowledge (music theory, musical culture, mastery of an instrument) to be able to develop on your own (start composing your music, learning to play several instruments, or becoming a famous singer).

What do I need to do to improve as a developer every day?

Do you remember when you went to your foreign language classes in High School or College? No matter if you studied French, Latin, Spanish, or Chinese at school. At the rate of 2 hours a week, for 4 years, how many of you became bilingual, “fluent” or at least feel comfortable when having a simple day-to-day conversation with a foreigner?

So we can be sure of two things: 1) the number of hours spent reading doesn’t necessarily translate into acquiring meaningful knowledge and, 2) it is certain that to be an IT developer, the most effective training is the one that will teach you how to learn. This is what the autodidact developers do very well to become a reference in their field and perform even better than some of the graduates of Harvard or Yale. But then, an important question arises: how to train your mind by yourself?

  • Self-learning. On the Internet, you can find all the resources you need to learn on your own. It’s magical and exhilarating at the same time, but you can quickly feel lost. The risk is to get stuck on certain problems (sometimes discouraging) and to go on several subjects that are interesting for you, but not necessarily for recruiters, which is a common thread to many beginners that have not found their place yet, but nothing is impossible!
  • University education. This is the way to go when you’ve just graduated and have the opportunity to continue your studies. DUTs and BTSs are flourishing, the path to engineering school is of course a significant plus. From experience, the best elements (in the field, not on paper…) are the work-study courses because after leaving school the business world can be a big slap on your unexperienced face. You have to quickly master the codes at the same time as the practice to gain experience, alternation allows you to be more serene.
  • Bootcamp type training. Somewhat special training courses have appeared partly responding to a shortage of profiles and a need for professional retraining. The idea is to focus on learning the code for several weeks. Learners help each other and supervisors supervise and support the course. The key is learning programming in a specific techno/field for employability on the subject concerned once you leave the Bootcamp.

Some of these training courses will allow you to get a diploma, others not.

Xavier Niel’s 42 Program is a variant, without a teacher, however, it is free. Rightly or wrongly, some argue that it is only used to recruit profiles with enormous talent who have left the school circuit. This is a chance that in the end would only be for a small part of the population. No judgments here, this possibility is great, but you have to understand how it works and make sure it is suitable to achieve your goals.

This mode of operation is based on a strong principle many developers defend: it is not mandatory to have a diploma to be a good developer, and that proof by projects can be sufficient validation for hiring talents, but above all, motivated people. So, to sum up, there are lots of possibilities! It mainly depends on your experience, where you live, and your geographic mobility. Of your skills too, of course.

Technologies come and go, at the end of these training courses you will be employable on a reduced spectrum of the developer profession, on a technology required for 2 years, will it be easy to bounce back afterward? When choosing a change of life, the effort to move is important, the questioning is strong. Shouldn’t we invest in a transformation that will serve us in the long term?

Let’s be clear, all types of training have their advantages, disadvantages, and different goals. The important thing is to know which one is right for you and your goals, given your constraints.

Not everyone is lucky enough to be able to continue their education (or to do so), not everyone has access to organizations in big cities or the necessary funds. Time is also an important factor, not everyone can devote days or even whole weeks. However, there is another way to code and change your life. Thriving over the long term requires 3 fundamental components:

  • “Broad” bases from the university world, which will make it possible to face “broad” issues and above all, with a 360 ° vision essential to evolve, because the profession of a developer is still only in its beginnings (less than a century, that’s not much compared to that of a lumberjack!)
  • Learning by doing with usable results allowing you to build a project-oriented business card. Either to integrate a company or to find its customers,
  • A state of mind and values. Smart people are everywhere, but good people… these are the ones you want to work with, and that you want to recruit. Why? Because we cannot know everything, we all make mistakes and learning is ultimately like success, a path that we take together, with pleasure and sharing.

How to find a job, or a client, or a project… a way of living?!

You don’t need to panic about finding a job because if you are a professional well-prepared with a great attitude you can find many places where your job will be fairly recognized. Below, you can find just a few examples:

Digital Service Companies. They are a great springboard for building experience and a network of knowledge. With agencies all over the US, it is possible to find one near your home. The world is changing, and so are ESNs, once frozen on diplomas and reputable schools, there is a place for atypical profiles. However, you will have to pass the job interview and prove yourself, but subsequently, the projects are varied, on a fixed-price basis or under contract with the client, short or long depending on the needs. They will also take care to keep skills up to date by offering training courses, and also career development other than just coding.

IT services.

The image of IT departments has changed dramatically. Be careful, the image (as a user) of non-communicating people, to whom you cannot speak without making a “ticket”, which takes a very long time to solve a problem is always tenacious (and sometimes true)!

You must have heard the magic words like “digital transformation”, “or digitization”, “to disrupt” or even “uberization”. Companies face brutal, often digital transformations and IT departments have shifted from shadow technicians to strategic advisers. CIOs are now at the forefront of supporting future directions, always standing out and staying ahead.

IT departments rely heavily on outsourcing to have a significant level of expertise on projects, whether they are ESNs or freelancers. But it is also possible to be hired there as a developer, in particular thanks to market costs which make hiring on permanent contracts interesting rather than buying months of external developers.

Self-employed or “Freelance”.

Freelancers will be able to find 100% online assignments and work 100% from home, at their own pace. This is the ideal case if you have strong constraints, or simply want to move away from cities. But beware, this case is not the majority.

The freelance can work on fixed price projects (a global assignment to carry out an application, regardless of the time spent there) or on missions (days of customer service). The ideal is to be able to choose a maximum of days of remote service. How? ‘Or’ What? In practice, the start of the mission can be done 100% at the customer’s premises for 15 days, the time to find the marks with the standards of the company, the team, the project manager. Then it is gradually possible to reach 100% from a distance. It depends on the organization, tools, and company policy.

You can start as a freelancer, but the network created with your prior experience will be an asset and will allow you to have your first clients. Another approach is to go through investment companies and/or platforms dedicated to the exchange of offers (for projects of different sizes). It is not uncommon to compete with several developers, the project references and reputation will do the rest (and the price of the service too)! As with any start-up, it can be interesting to start humbly to get the first experience, but be careful not to sell too low to remain credible!

Recruitment firms.

LinkedIn is their hunting ground. If your profile is convincing, you will be constantly in demand. Be careful not to “oversell” yourself because you will then have to insure, and this can be catastrophic, being fair and honest is essential because a firm that works with you needs to offer quality services to its client. Not necessarily living gods (they are expensive), but finding the right person in the right place and having a happy customer is their priority.

Working for the long term with them can be a win-win, either to be positioned as a permanent worker (often with a specific client) or to find assignments as a freelance.

Your network.

Obviously! Your network begins to be built from the first day of your training, with your comrades, who will also evolve, like you, with recruiters, needs … and therefore projects, missions, and hires! These are human relationships that are built over the long term. The best question to ask yourself when you start a relationship is “what can I offer the other” because the network is not a one-way street. The number of people is also important. It’s even more important to have 50 friends who you can drink a coffee with than 1500 LinkedIn connections, unknown or forgotten.

What are the possible outcomes for an IT developer?

Many! Over time, opportunities present themselves, others create, sometimes it is our personal life that guides our choices, but the important thing is to have the choice! How to? By listening.

To change, you have to know how to raise your hand on uncontrolled subjects but with a strong desire to learn and an investment to match the trust people place in you. Small structures are versatile, so it is easy to acquire a variety of experience (but hardly expertise). On the other hand, large groups facilitate the development of expertise (s) and bridges between businesses. Skills assessments can be carried out and monitoring set up to transform appetites into skills. It’s a win/win because you become more complete, improve your employability and the company retains a competent and motivated resource to strengthen its backbone and support its customers.

Be careful however with the terms of the market, which are often in fashion, and like all fashions disappear. By abusing terms that the general public does not understand to inflate the price for the services you offer, you can confuse your potential clients and never get hired. The important thing is to fully understand the terms of the market and to respond to those that we want to control today and which will be promising for tomorrow

A simple example, you will find the terms of a Web developer, Front, Back, Full Stack…

they are all developers with a common base, and specialization on preferences (some prefer to develop user interfaces, others of the logic of processing, others tools, others smartphone applications, etc.). These terms appeared mainly because of the industrialization of IT developments.

In 2010, the terms Front, Back, and FullStack did not exist, yet there were developers … and there will be some after. So, understand the terms, focus on your desires, and your employability but always keep curiosity and a transversal vision to keep developing your career beyond the fashions but temporal terms of the industry.

Ventura IT | Web Development Process – Ventura IT – Medium