# Conclusion

If you have **read the entire** book and you've solved all the problems from the exercises and reached the present conclusion, **congratulations**! You've already made the **first step** in learning the **profession of a programmer**, but there is a **long way** to go until you become **really good** and make **software writing** your **profession**.

Remember the **[four main groups of skills](chapter-00.2-how-to-become-a-programmer.md)**, that each programmer must have to work in the industry:
 - Skill #1 – **writing the program code** (20% of programmer's skills) – covered to a large degree by this book, but you must learn additional basic data structures, classes, functions, strings, and other elements of code writing.
 - Skill #2 – **algorithmic thinking** (30% of programmer's skills) – covered partially by this book and developed mostly by solving a large amount of diverse algorithmic problems.
 - Skill #3 – a **fundamental understanding of the profession** (25% of programmer's skills) – acquired for a few years in combination with learning and practice (reading books, watching video lessons, attending courses, and mostly by writing diverse projects in various technological areas).
 - Skill #4 - **programming languages and software technologies** (25% of programmer's skills) – acquired in a long period, by a lot of practice, consistent reading, and writing projects. Such knowledge and skills quickly get outdated and need to be updated frequently. Good programmers are involved in studying new technologies every day.

## This Book is Only The First Step!

**The present** book on programming basics is just the **first step** in building the skills of a programmer. If you were able to solve **all problems**, this means you have **obtained valuable knowledge** in the programming principles with **Python** language on a **basic level**. You are about to start **in-depth** studying of programming, develop **your algorithmic thinking**, and then add **technological knowledge** regarding the Python language, Django ecosystem, front-end technologies (HTML, CSS, Angular, React, AJAX, HTML5), and many other concepts, technologies and instruments for software development.

If you were **not able** to solve all problems or a large part of them, go back and solve them! Remember that **becoming a programmer** requires **a lot of work and effort**. This profession is not for lazy people. There is no way to learn it unless **you seriously practice** programming for years!

As we already explained, the first and basic skill of a programmer is **to learn to write code** with ease and pleasure. This is namely the mission of this book: to teach you how to code.

## What to Do After Reading This Book?

This book **gives you solid foundations**, thanks to which it will be easy for you to continue developing as a programmer. If you wonder how to continue your development, you have the following possibilities:
 - to study for a **[software developer](https://learn.softuni.org/catalog?utm_source=Python&utm_medium=text&utm_campaign=free+programming+books) at SoftUni** and make programming your profession.
 - to continue developing as a programmer **on your own**, for example through self-training or via free online lessons.
 - to **stay at a coder level**, without going more seriously into programming.

### Study Software Engineering at SoftUni

The first option, which we recommend, is to enroll in a **[Software Developer program](https://learn.softuni.org/catalog?utm_source=Python&utm_medium=text&utm_campaign=free+programming+books)** to master programming on a professional level. The SoftUni curriculum is carefully developed by **Dr. Svetlin Nakov and his team**, to provide you consequently and with gradually increasing complexity all the skills that a software engineer must have, **to start a career as a software developer** in an IT company. 

SoftUni’s self-paced programs are designed as a **sequence of modules** giving you fundamental knowledge in software development and practical skills to prepare you to work as a programmer with the latest software technologies. The classes are divided into **learning theory (30%)** and doing exercises and **projects (70%)**.

#### Training Duration at SoftUni

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** by having good grades at SoftUni, combined with a willingness to work and reasonable expectations towards the employers, is almost guaranteed.

#### It Takes at Least a Year of Intense Code Writing to Become a Programmer

Keep in mind that **to become a programmer takes a lot of effort**, writing tens of thousands of lines of code, and solving hundreds, even thousands of practical problems, and this takes years! If someone offers "**an easier program**" with the promise of you becoming a programmer and landing a job within 3-4 months of starting the course, they are either **lying** to you, or providing a significantly lower-quality education that will not prepare you enough for even an intern position. 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**!

<!-- to update -->
<!-- #### Entrance Exam at SoftUni
**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 to solve.

If the tasks from the book and the preparation examples are hard for you, then you **need more preparation**. 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. -->

<!-- #### SoftUni Curriculum for Software Engineers

What follows after the entrance exam is a **serious curriculum** in the SoftUni program for training software engineers. It is formed as a sequence of **modules in several courses** in programming and software technologies, fully directed towards gaining fundamental knowledge in software development and acquiring **practical skills for working** as a programmer with the most contemporary software technologies. Students are given a choice between **several professions** and specializations focused on C#, Java, JavaScript, PHP, and other languages and technologies. Each profession is trained in several modules with 4 months duration, and each module consists of 2 or 3 courses. The classes are divided into **theoretical preparation** (30%) and **practical exercises, projects** (70%), and each course ends with a practical exam or practical academic project. -->

<!-- #### How Many Hours Per Day does The Training Take?

The training for software engineers at SoftUni is a **very serious occupation** and you need to spend **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, 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 a 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. -->

#### SoftUni for People Who Work and Study

We recommend to everyone who gets **an excellent score at Judge Problems** and is passionate about making programming their profession, to consider leaving the rest of their commitments aside to **spend more time** on learning the profession of a software engineer and start making a living through it.

We recommend to all who **cannot get an excellent score at the Judge problems** 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.

### Study Software Engineering on Your Own

Another possibility to develop after this book is to **continue studying programming outside of SoftUni**. You can enroll or subscribe to **video training**, that goes into more details in programming with **Python** or other languages and development platforms. You can **read books** on programming and software technologies, follow **online tutorials** and other online resources – there are plenty of free materials on the Internet. However, keep in mind that the most important thing about the profession of a programmer is **to do practical projects**!

**You cannot become a programmer without a lot of code writing and intense practice**. Allocate **sufficient time** to it. You cannot become a programmer for a month or two. On the Internet, you will find a wide variety of **free resources** such as books, manuals, and video lessons. However, you need to invest **at least a year or two**, to acquire a foundation level, needed for starting a job.

After you gain some experience, find a way to start **an internship in a company** (which will be almost impossible unless you'd spent at least a year of intense code writing before that) or come up with **your practical project**, on which you need to spend a few months, even a year, to learn based on the trial-and-error principle.

<table><tr><td><img src="/assets/alert-icon.png" style="max-width:50px" /></td>
<td>Keep in mind that there are many ways to become a programmer, but they all have something in common: <b>code writing and years of practice</b>!</td>
</tr></table>

## Online Communities for Beginners in Programming

Regardless of the path you have chosen, if you are seriously involved in programming, we recommend subscribing to specialized **online forums, discussion groups, and communities**, from which you can get assistance from your colleagues and track the novelties in the software industry.

If you aim to study programming seriously, **surround yourselves with people who are involved in programming** seriously. Join **communities of software developers**, attend software conferences, go to events for programmers, find friends with whom you can talk about programming and discuss problems and bugs, find an environment that can help you. In most large towns there are free events for programmers, a few times a week. In smaller localities, you have the Internet and access to the entire online community.

Here are some recommended **resources**, that will be useful for your development as a programmer:
* [https://learn.softuni.org](https://learn.softuni.org/catalog?utm_source=Python&utm_medium=text&utm_campaign=free+programming+books) –  the official page for SoftUni’s **self-paced Software Developer programs and open courses**.
* https://www.facebook.com/softuni.org – official **Facebook page of SoftUni**. By it, you will learn about new courses, seminars, and events related to programming and software development.
* https://introprogramming.info - official website of the **books "Programming Basics"** with **C#**, **Java**, **JavaScript**, and **Python** by Dr. Svetlin Nakov and his team. The books examine in-depth programming basics, basic data structures and algorithms, object-oriented programming, and other basic skills, and are an excellent continuation for reading after the current book. However, **besides reading, you need to do intense code writing**, do not forget that!
* https://stackoverflow.com - **Stack Overflow** is one of the **widest** discussion forums for programmers worldwide, where you will find assistance for any possible question in the world of programming. If you are fluent in English, look up at StackOverflow and ask your questions there.
* https://www.meetup.com - search **tech meetups** around your town and enter the community that you like. More of the tech meetups are free and the newcomers are welcome.

## Good Luck to All of You!

On behalf of the entire authors' team, we **wish you endless success in the profession and your life**! We will be really happy if we have helped you get **passionate about programming** and we have inspired you to go bravely towards becoming a "software engineer", which will bring you a good job that you will work with pleasure, give you a high-quality life, and prosperity, as well as amazing perspectives for development and possibilities for making impressive projects with inspiration and passion.

<p align="right"><i>Sofia, October 19, 2018</i></p>
