The first, and respectively recommended option to master fully and on high level the profession of a "software engineer", is to start your training via the end-to-end SoftUni program for software engineers: https://softuni.org. The SoftUni curriculum is carefully developed by Dr. Svetlin Nakov and his team, in order to provide you consequently and with gradually increasing complexity all the skills that a software engineer must have, in order to start a career as a software developer in an IT company.
The training in SoftUni has a duration of 2-3 years (depending on the profession and the selected specializations) and during that period it is normal to reach a good starting level (junior developer), but this is only if you study seriously and write code intensely every day. Upon having good grades, a typical student starts a job around the middle of the training (after around 1.5 years). Thanks to the well-developed partners network, the career center of SoftUni offers work in a software or IT company to all SoftUni students who have very good or excellent grades. Starting a job in the major in case of having good grades at SoftUni, combined with willingness to work and reasonable expectations towards the employers, is almost guaranteed.
Keep in mind that to become a programmer takes a lot of efforts, writing tens of thousands of lines of code, and solving hundreds, even thousands of practical problems, and this takes years! If someone offers you "an easier program" and promises you to become a programmer and start working within 3-4 months, then either they are lying to you, or they will give you such a low level, that companies won't even take you as a trainee, even if you pay to the company that is wasting its time with you. There are exceptions, of course, for example if you are not starting from scratch, or if you have extremely well-developed engineering thinking, or if you apply for a very low position (for example technical support), but in general, you cannot become a programmer if you haven't spent at least 1 year of intense learning and code writing!
In order to enroll at SoftUni you need to attend an entrance exam in "Programming Basics" on the material from this book. If you easily solve the problems in this book, then you are ready for the exam. Also, pay attention to the chapters on preparation for the practical exam in programming. They will give you a good idea of the level of difficulty of the exam and the types of tasks that you need to learn solving.
If the tasks from the book and the preparation examples are hard for you, then you need more preparation. Enroll for the free course in "Programming Basics" or go through the book carefully one more time, without skipping solving the problems in any of the studied topics! You must learn how to solve them with ease, without helping yourselves with the guidelines and the sample solutions.
The training for software engineers at SoftUni is a very serious occupation and you need to spend on it at least 4-5 hours every day, preferably your entire attention and time. Combining working and training is not always successful, but if you work something easy and you have a lot of spare time, it is a good option. SoftUni is an appropriate option for school students, university students and people who work, but it is best if you assign your entire time to your training and mastering the profession. It will not work if you spend 2 or 4 hours a week on it!
The forms of training at SoftUni are on-site (the better choice) and online (if you don't have another option). In both forms of training, in order to learn the program in the curriculum (that is required by software companies for starting a job), you need a lot of learning. You just need to find the time for it! Reason #1 for having hard time on the road to the profession in SoftUni is not spending enough time for the training: as a minimum you need to spend at least 20-30 hours a week.
We recommend to everyone who gets excellent score at the SoftUni entrance exam and are really passionate about making programming their profession, to leave the rest of their commitments aside and spend their entire time on learning the profession of a "software engineer" and start making a living through it.
- For people who work this means quitting their job (and getting a loan or decreasing their expenses, in order to spend with a lower income a period of 1-2 years until they start working in the new profession).
- For people who study in a traditional university, this means to move significantly their focus towards programming and the practical courses in SoftUni, by decreasing the time spend in the traditional university.
- For unemployed people this is an excellent chance to assign their entire time, power and energy on acquiring a new, perspective, well paid and highly sought profession, that will give them good life quality and a long-term prosperity.
- For students in secondary schools and high-schools this means giving a priority to what is more important in their development: studying practical programming in SoftUni, that will give them a profession and a job, or giving their full attention to the traditional education system, or combining smartly both undertakings. Unfortunately, often priorities are determined by parents, and we don't have a solution for these cases.
We recommend to all who cannot get an excellent score at the SoftUni entrance exam to spend more time on better learning, understanding, and most of all, practicing the material studied in the present book. If you cannot easily solve the problems in this book, you will not be able to cope with programming and software development in the future.
Do not skip the programming basics! Do not under any circumstances make bold decisions and quit your job or the traditional university, making great plans for your future profession of a software engineer, if you don't have an excellent grade at the SoftUni entrance exam! It measures if programming is suitable for you, to what extend you like it and if you are motivated to study it seriously, and work this for years every day with joy and pleasure.