📜 ⬆️ ⬇️

Recommendations for the start of career growth

Based on a recent conference at YSU on March 25, which was attended by very few people, I decided to write a small motivating post for students and novice programmers / IT specialists. My presentation from the report can be viewed on skydrive . Here I will try to briefly, as much as possible, to highlight this report.

This is purely my flight of thoughts, I do not pretend to any revelation or novelty. I started writing it immediately after the conference (a month ago), but somehow I could not finish it. It makes me happy that, apart from me, everyone wants to share with students and novice developers. Only in the last couple of weeks, two topics with similar topics have been noticed (and also transcripts from conferences):

Well, to us more than once raised this topic. I recommend reading and charging with all these topics.


Poor education


This is what students and teachers in Russia say: we have a terrible education. Students often say that the university does not teach what is necessary in practice. How many topics we saw last year on the resource habrahabr about it (I restrained myself, and did not answer one). On the other hand, I was lucky to take refresher courses (as a teacher), in which I spoke with teachers from other faculties, and where we tried to solve and think about the problems that we ourselves put forward. So, the main problem we had, which we put forward - is the passivity of students in learning. Suddenly, yes?
')
We also hear from students complaints about bad employers who do not take them to work, because they have no experience, and they have no place to get experience. Employers, in turn, say that students are very stupid and not prepared for work.

So what, in my opinion, should be taught at a university? Students will need knowledge of programming languages, because C #, Java, C ++, ASM (and that anything is possible, maybe such a job will happen). Then students need to be able to create client applications, hence WinForms, WPF, MFC. Web development: PHP, ASP.NET, ASP.NET MVC (ASPX / Razor). Data needs to be stored: SQL-92, TSQL (MsSQL), PL-SQL (Oracle), MySQL, PostgreSQL. Well, not directly from the students will be asked to contact the database, therefore: ORM, Hibernate, NHibernate, Entity Framework, Linq-To-SQL, ADO.NET. We still have technology around: Silverlight, WCF, WF, SOA knowledge. You also need to know some development frameworks: Sharepoint, Microsoft CRM, SugarCRM. And stop, we talked about web programming: XML, XHTML 1.1, HTML 4, HTML 5, CSS 2, CSS 3, XPath, XSLT, and so far without JavaScript. Well, the basics, the basics: Continuous Integration (CC.NET, nAnt, TeamCity, TFS); familiarity with working with CVS, SVN, Git, Mercurial, TFS repositories; patterns: GoF, MVC, MVVM, MVP. You also need to know different development shells, toolkits (Debuging, Profiling), and clever words: TDD, IoC, Scrum, Agile, etc. You know, I even doubt a little that I called 70% of what I had to learn and use in my 6 years of practice (well, it is forgotten that once, as a student, someone wrote programs in Borland C ++ or Delphi for a penny , although for me then it was a lot of money). I want to draw attention to the number of years, only 6 years. And I’m more than confident that over the years I’ll have to (if I want to develop) once again return to what I consider to be the last step, and what I already consider known materials, and also that in a couple of years I will be able to list Still to add a lot of technology. And now, take another look at my list. Almost all of these technologies are interconnected by Microsoft (80%), well, that was my career. This is just Microsoft. The ruby ​​developer will write another list, and the developer of the embedded devices will write their own (they will, of course, somehow intersect with mine). Moreover, I here, practically, did not write the version of platforms yet. When current freshmen graduate from university, this list can also be corrected and modified. So what really needs to be told in universities? Exactly what they are now telling. No more no less. What is the difference, what subset will tell you from the IT set, and how much. 100% cover fails - that's for sure, even 10%, and the difference is that one university tells 0.0005% and the other 0.0006% is small. There are basics, they are told in all universities, and they should be enough. It depends, of course, on the teachers, how they are served.

“We were taught at school, and we should study at the university.” Stupid expression, but if you think about it, it has a lot of meaning. From this and need to make a start.

Self study


Where to take knowledge? In the Internet. Even I (in my 26 years) did not have the opportunity to surf the Internet at the university. I remember that my friend and fellow classmate chose a weekend night, bought beer, an Internet card and went on the Internet (cheaper at night). According to the stories of my older colleagues - we were also very lucky, we even had computers at home, and someone else had to break through to the computer in order to try and see something. Whether to try that code that wrote on a piece of paper works. Now everything is easier. Everybody has computers, the Internet is also available. And you know famous IT resources without me.

A very good option is to sit on specialized IT forums. At first just read. Then get a grasp of unresolved problems, search for solutions in Google, and solve other people's problems. Then learn to see problems on the surface. Or you can solve them yourself without any problems. So I did when I studied ASP.NET. Got on the forums GotDotNet, and there is very well pumped on this topic. Learn from the mistakes of others.

Another option is OpenSource. Its a huge amount. Look for interesting projects for you. Begin to study the code, follow the changes, look for errors, read the recommendations to the project, implement them, send your patches to the main developers of the project - in time you will be given rights to the project. Do not ask immediately to give you access just because it is interesting, first you need to recommend yourself. Honestly, you will never find a super OpenSource project in which the code will be 100% perfect, this just does not happen, so just look for an interesting project for you, but not perfect. And what's more, most often you have to dig with the old (legacy) code, get used to it from the cradle.

You need to go for everything free (conferences, classes, courses), which is only there, and no matter what religion you are. It is necessary to read everything that only comes to hand, and for what there is time. Do you know that there is such a profession as a usability specialist? This is the person who read a very tedious document about what the formulas in Windows7 should be, as well as possessing some knowledge of psychology.

No extra knowledge


This is better described in one of Joel Spolsky's articles. Advice to students of computer science . It describes why you need to be able to write, why you should be able to talk, and why you need an economy. Homework - read this article, if you have not read. And I, even at the conference, retold it, will repeat, I will not.

I, before preparing for the conference, looked into the history of my mailbox. See what I wrote and how, as a student. Well, firstly, it is difficult to find something without a mat, and the second ... Just look. Here, for example, times:



And here, for example, two:



The second letter, so I wrote an official letter, I wanted to publish my work (I was interested in Photoshop design) on some site. I remember that once I almost got a job in a magazine as a designer. In general, write correctly. That “writing style” still haunts me, although at school I had a solid four. Try to write correctly everywhere, even in icq, where, as it seems, there are no literate people left.

What to start doing tomorrow?


I consider these books to be bibles. Each of them have already read 2 times for sure. At first, when I was almost a student, I read, but I remembered a little of everything. The second time, when already gained a little knowledge. And it would be necessary to return to them a third time, to read to feel how it helped me or even help.



Take care of yourself. Until now, there is no normal Twitter client, everything sucks. Well, write and you are your crap client. There is only one normal free engine for phpBB forums, and then in php. There is still no notebook on amazon kindle (the idea is already crammed). Steal ideas, redo them, realize doubles. Look at the television, but there 99% of programs are stolen from the west. In IT, you can steal too, honestly . Even if your program will be used only by you and a couple of your acquaintances - the role that you have completed a certain (even very small) project will play a role.

If you do the same task twice - this is the job for a real programmer. Automate everything. Do you drag wallpapers with atata branches ? Write a program that will do it for you and put you new wallpapers on the parameters from this RSS. Write a simple non-working program first, watch it, develop it, let friends use it. Make a normal GUI, put it on the Internet. And do not forget to share with me.

Be a programmer


The most important thing is to go through that stage when a person turns into a programmer (the benefit of mathematics is quite close). These jokes about the “boil kettle” algorithm (they still know it, right?), Or about the fact that a programmer, crossing a one-way road, looks in both directions - they are not just. This is a way of thinking. You can not believe anyone, you need to check the external parameters. You need to be able to see the errors. You can never rely on a smart user. This, by the way, is one of the mistakes of our teaching, which the teachers allow the students to do initially bad programs. Students do not validate data, make terrible interfaces. My students are not lucky right now, I took them.

To warm up, start by reading this book.



There are collected good puzzles, you can warm up to solve them. You can just see and parse the answers. You can make out the answers, and try to write in another language (sometimes there are minor language-specific differences).

Settle for work


Actually, the last thing to do is get a job. So everything is simple and trite. Do not run after the money, if everything is correct, they will come. Look for work where it seems to you, will give a lot of knowledge, invest in yourself. Being at conferences - you make acquaintances, among peers, among speakers, look for smart questions that can be asked somewhere on the sidelines, just so that your physiognomy would be deposited somewhere on the sidelines. At the present time, the most difficult thing for employers is to hire someone interested in work and development, if someone once remembered you at some conference, this is already a big plus.

When I got to work at a construction site after the 3rd course (then I was already working as a programmer, but there was little work, but I wanted to earn some money for a vacation), then I found myself very simply - I found out where I had the nearest construction site and how to contact the main team leader. I came to him at 8 in the morning (already with clothes for changing clothes) and asked how I could be useful. It is obvious that after 15 minutes I was already working hard. For a month, I collected money, I thought, I would work more, but there was still a job for a programmer.

Actually, and what prevents to do the same with IT companies? Come to them on 2-4 courses, choose one of you interesting (the blessing all have sites), prepare well - find out what the company does. Find the chief manager or director or someone else and explain the situation that you want at the end of graduation or even earlier (in YarSU, for example, in the 5th year there is no study) to start working for them, what you need to do. Tell me that you are ready for a year just to sort out tasks for free, try to solve them, etc. I think that the employer (smart employer) will be glad to the interested student.

And do not be afraid of interviews never passed. Any person has several of them. Go home and just figure out why you couldn’t get through.

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


All Articles