📜 ⬆️ ⬇️

A programmer without a diploma: what can and what can not give "home schooling" in IT

The profession of a software developer today is one of the highest paid. However, to become a class specialist, you need to cultivate and learn. To the heights of programming can come in different ways.

Someone understands everything on their own, good on the Internet there are a lot of useful literature and free courses (such courses are taught and ITMO teachers - some of them we published in our previous materials: here and here ). Another option is to go to university and get a degree in information technology.

In today's article we will talk about what features and difficulties has the learning process in the IT field, and how to cope with them on both "routes".
')
hackNY.org / Flickr / CC

No learning process is easy, including the study of programming languages ​​and information technology in general. Computer science, like technology, is constantly evolving. With this in mind, software developers have to constantly monitor the latest updates to systems and frameworks. At the same time, in the process of learning, one has to keep in mind many nuances that need to be competently combined into a single picture.

And although programming is considered to be a creative area, it also has “mechanical” aspects, such as writing clean code and comments to it, as well as documenting the project. These are things that do not give immediate progress in learning (but come in handy in the future), so work on them is often put on the back burner. From the first days to improve the technique requires a high level of discipline and motivation.

Homeschooling: what you need to be ready for


It would seem that all of the above speaks clearly not in favor of home schooling - it is not easy to study any new area for yourself, and if it requires special diligence and self-discipline, and new knowledge does not always provide immediate progress, then learning independently becomes very difficult. Nevertheless, it is quite often in this way that programming is introduced — you just have to pay more attention to the following points:

Read more books on the subject than program students

Greg Neustaetter (Greg Neustaetter), senior manager at Egnyte (American software company), said that in the case of self-study, you will really have to read a lot to fill in the gaps that people usually pay attention to on the student's desk.

Indeed, not all students read the literature recommended for studying for each course - and still acquire the necessary knowledge through lectures, repetition of material in practical classes and communication with fellow students. The lonely beginner often does not have such an opportunity, so he will have to turn to books. In particular, Greg Neustetter recommends reading books on discrete mathematics , design patterns, and algorithm design in the first place.

Actively seek colleagues and fellows to share knowledge

Books are a good source of information, but people are still social creatures, so we are well aware of the information received from another person. In the case of a university, this person is a teacher. When learning "at home", the mentor has to be looked for independently. At the same time, he, most likely, will not explain all the topics and give lectures (unless this is not an online course teacher), but will help draw up a “learning plan” and advise on which particular attention should be paid.

Such communication is important not only in order to gain new knowledge, but also in order not to abandon the training as a whole. A lone newcomer, faced with difficulties, is much more likely to give up training than his fellow student. The support of other programmers, and sometimes the desire not to let them down, should not be discounted during self-study - they are extremely important. Habre and his developer community, as well as other resources and forums where a beginner has the opportunity to find an answer to a question and share his opinion, may come to the rescue in this case.

Independently think through practical work: both serious and playable

More effort will have to be put into practice. Here, programmers are advised to immediately begin work on a meaningful project and not to attach serious importance to “exercises for exercises” (unfortunately, not all universities have students focused on interesting practical projects - this programmer, the student himself, can avoid). Plus - it will positively affect the motivation: the ability to see how your own application is developing, will not let you get bored.

For beginners (of all ages), self-training in a game format will also help to keep attention. Good representatives of their genre are CodinGame and Code Combat , in which the player controls the characters, writing code lines with commands. Several other interesting resources can be found at the link .

What can give education at university


Education at the university also has its own characteristics - of course, it takes more time and effort. Whatever form of university education you choose, you first have to endure the competition, pass the entrance tests and (in the case of full-time study) attend the university almost daily, which is not always convenient, especially for those who want to change their profession and work in parallel.

Add to this the tight schedule, sessions, not always interesting subjects and many other mandatory tasks - it would seem that the game is not worth the trouble. However, in universities with a strong IT profile, there are quite a few opportunities that are inaccessible to those who study independently:

Information is more structured.

In high schools, students from the first days begin to give fundamental knowledge in the chosen field and “inculcate” an understanding of the structure of the discipline (for example, future programmers at the ITMO University are taught the discipline “Programming Paradigms”). This approach is practiced in many world universities, including the American MIT.

Not every beginner in programming is able to independently build a training program in this way - as a result, some important sections are missed because they are too boring or (at this stage of training) inapplicable in practice. A clear and structured presentation of the material, including non-practice oriented, may not seem interesting enough, but it gives a “cumulative effect” - the fundamental knowledge in the complex will help you later quickly master new practical disciplines.

Of course, this effect can be achieved and learning at home. However, in this case, a novice programmer will have to constantly make a difficult choice between what can be used immediately in practice and the “foundation” - in conditions where you have to motivate yourself on your own, the second category is often overlooked.

You can quickly establish contact with practitioners

Further, when the basis is learned, teachers, invited from various companies, begin to work with students. They conduct practical exercises, sorting out the problems they face in their professional daily activities. In particular, ITMO University cooperates with such companies as Mail.ru, Yandex, JetBrains, VisualSVN and others. Starting from a certain stage of training, students can practice in these companies, where they perform real “combat missions”.

This helps to get the most complete picture of the specifics of work and modern technologies used "in production". According to the research , students who attend only classic lecture courses fail examinations one and a half times more often. Strategies for active learning are very effective , because the approach is aimed at constant interaction between students and teachers through direct and inverse relationships and increasing the students' motivation and emotionality.

Complex collective learning models are available.

Another popular method used in universities is network education based on ideas from decentralized learning activities. In this case, we are talking about controlled communication through the use of techniques that require active independent work and interaction of students.

An example of such an approach would be the physics learning method used by Eric Mazur. It is called “teaching by students” (Peer Instruction) and involves involving students in active work on the study of concepts and theories, followed by their explanation to their peers.

Practice and theory effectively complement each other.

As mentioned above, computer science is a constantly evolving field, and the field is more practical than theoretical. In this regard, a simple reading of lecture materials is not enough. And if, at home schooling, a beginner has to invent tasks on his own so as not to lose motivation and not slip into copying ready-made exercises, then at university this work (forming not only useful, but also interesting practical part) lies on the teacher's shoulders.

Of course, much in this case depends on who leads the course, however, professionals have enough advantages - if necessary, they can change part of the practical work at the request of the student (so that he can realize an interesting project for him) without missing important details. By the way, anyone can now assess the possibilities of such training with a teacher - an example of such a practical work-oriented curriculum is the course of the ITMO University Programming and Web Application Development, which is available online.

Students in this course are engaged in the creation of a web resource on Django - a small information system and its applications. Dmitry Shtennikov, author and associate professor of the Department of Computer Educational Technologies at ITMO University, tells the audience how to do it, and students try to repeat it. At the same time, so that no mindless copying occurs, students gradually receive new information throughout the course, and then improve their project with the help of previously acquired knowledge.

Of course, with the development of open online education, such courses and projects are increasingly becoming available to everyone. But while the number of MOOCs is relatively small, and they do not cover all the disciplines available in higher education institutions, it is unlikely that they will fully switch to MOOC training - rather, it is an opportunity to refresh some knowledge or to acquire new skills “on top” of the existing fundamental education.

What is the result


So, it is possible to get the knowledge and skills necessary for a programmer “at home” - however, you have to show firmness of mind and have serious motivation, besides, you will need to independently formulate a curriculum and balance between purely practical skills that will help right now and fundamental knowledge , useful when learning in general.

University students with a strong IT component are simpler: they will have to sacrifice their freedom to learn “when convenient and where convenient”, but in return they acquire more structured fundamental knowledge, can enlist the support of professionals and from the university bench go to the staff of a large IT company.

There are certain tasks in solving which university knowledge comes in handy. “A couple of times in my career I encountered problems that I could not solve without the knowledge I got at the university,” programmer Nathan Marz says . - One of such situations is the development of algorithms for the operation of distributed systems. I needed to register a formal proof in order to confirm their performance. ” The algorithms of which Nathan speaks, formed the basis of the Storm system.

However, it is not necessary to assume that, even after entering the university, self-education can be left aside. These skills are incredibly important for future programmers at least due to the fact that information technologies are now developing very quickly.

At the same time, despite the fact that modern ideas about education are changing, many employers and specialists (including in the IT sphere) still pay attention to the diploma - to some extent. For example, Mark Zuckerberg recently decided to get a degree. And in IT companies (in particular, in Google) it is easier to get an interview with a diploma of higher education in the field of computer science. However, during the interview you will still have to show your knowledge on a par with other applicants - there will be no concessions here.

PS Big interview: how to enter ITMO University .

Source: https://habr.com/ru/post/324484/


All Articles