Why you should become a software developer (and how to start)

Nowadays becoming a software developer is undoubtedly one of the best career choices someone can make, not only because of the great job opportunities available but also because of the huge rewards in terms of personal satisfaction, self development and creative expression.

As someone who began walking this career path not so long ago I always thought that more people should be able to know what a great opportunity it is to work in this field.

With the right amount of passion and perseverance everyone can acquire the necessary skills at any point in one’s life.

Here are some of the benefits of choosing this career path:

Accessible and Free Education

While having a formal university education in Computer Science is certainly a good foundation to achieve a professional level in software development, it is not the only possible path.

Nowadays it is possible to become a skilled software developer through self-education and practice.

The Internet is full of resources for self-education: online courses, bootcamps, tech blogs and beginner friendly communities are just some of them. With discipline and enthusiasm it is possible to teach yourself the basic skills needed in this job, and plenty of companies are willing to give an opportunity to talented self-taught junior developers.

Continuous Learning

Being a software developer means being a continuous learner.

A software developer always needs to keep up with the latest technologies and trends in order to have the right toolbox for every technical challenge.

Every new project will require stepping out of the comfort zone and acquiring/using new skills in order to achieve the desired result.

This means that as a software developer you will never be bored or lack motivation in a repetitive daily job.

Daily creativity required

Software development is a highly creative job.

While it is important to adhere to well known and tested patterns whenever possible, there are usually many possible approaches or tools that can be used while working on a task, and which one to pick is always a creative and personal expression.

As a software developer you will constantly express your unique logical thinking and creative process in every new feature or fix.

Freedom

Becoming a software developer could allow you to have flexible working times and locations, and all you need to work is a computer and your skills.

Many developers go freelance and have complete freedom to organise their time time and working conditions while others become employees in companies, but they can still benefit from working remotely.

It is usually easy to find English speaking IT jobs even in non-English speaking countries, which will allows you to relocate to a foreign country and be able to find a job even before learning the local language.

Solid Career Path

The demand for skilled programmers has skyrocketed in the last years and it doesn’t show any sign of slowing down.

There are at the present time more job openings for IT related positions than people with the right skills.

By becoming a software developer you will likely never have problems finding a job.

Changing The World

Technology has dramatically changed the course of humanity.

The way we connect to each other, achieve daily tasks, enjoy entertainment or manage our finances is irreversibly affected by technology.

By working in IT you will always be at the center of the change and be able to contribute to society’s progress.

How To Start

Here is some advice to make your first steps in becoming a software developer:

Online Education

The Internet is full of free and paid educational resources. If you are an absolute beginner, start with an online course covering the basics of Computer Science (computer architecture, algorithms, data structures, problem solving and so on…) . Later pick up a course that goes over the key concepts of programming with a language of your choice.

Choose a Programming Language

It is always better to choose a specific language to start and try to reach proficiency for it before jumping to another. This makes it easier to avoid becoming confused, and you will quickly gain skills that that are useful on the job market.

Once you have mastered a programming language, switching to others will be much easier as you will already possess the key concepts and the right mindset.

You can decide which programming language to learn based on many factors like popularity, job demand or a specific field of application, but in the beginning of your career it is better to choose a language which is beginner friendly and supported by a great community.

In this sense, Ruby is a great choice as first language.

Ruby is a general purpose a language designed specifically to be used with ease by software developers. The syntax is simple and straightforward to read and You won’t have to deal with advanced topics such as memory management, pointers, and compilers from the beginning.

Ruby on Rails, a popular Ruby framework, makes possible to build robust web applications quickly and is very popular among startups.

If becoming a web developer is your ambition, Ruby and Ruby on Rails should be your starting point.

Last but not least, the Ruby community is great, and there are plenty of local meetups and conferences in every big city where you can get in touch with other developers.

The presence of Ruby developers in every forum is usually huge and they are very beginner friendly. You will never have problems finding support for your problems and answers to your questions.

Learn by Doing; Create Your Own Projects

It is never too soon to start working on your own personal projects, and challenging yourself with practical problems of real world applications is the best way to learn on the job.

Think of some application you would like to build, then try to divide it into small logical parts and start working on them.

From the beginning you will likely face different challenges and this will force you to go through documentations and forums, looking for help. Don’t by shy to ask the community for assistance!

In addition, building your own portfolio of pet projects is the best way to showcase your skills to potential employers.

Contribute to Open Source Projects

Contributing to open source projects can be the best way to start testing your skills and receive feedback from other developers.

You can start by working on a small bugfix or a minor improvement, then creating a pull request and waiting for feedback.

This will give you the opportunity to dramatically improve your coding skills, and lets you learn to focus on key elements of teamwork, such as readability, adhering to conventions, documenting your code, and so on.

Search GitHub for issues with labels like “first-timers-only” or “good-first-contribution”. These are usually good places to start.

The Path Is the Goal

A career in software development is a lifelong journey. It doesn’t matter when you start or how long it will take you to succeed. Every day you will be given the opportunity to learn amazing, new things and bring value to society through innovation, and this is the most important reward.