Tips to yourself in the past

I have little experience (summarily I have been working as a programmer nearly for 16 months), nevertheless, I would like to give some tips to myself in the past, or in other words, to those who are studding now at the university and planning to become a software developer. I do not have a claim on wisdom or experience on no account. While thinking a little, I understand that all these tips are very actual for me more than ever too. I published the first note in my blog last year, and now I am publishing here the list expanded with tips of the readers of this blog.

All tips are independent and their order does not matter.

Be creative. Program. Program. Program. The managers of the company where I work have the opinion that the programmer’s resume is github. It is only an expression, the whole point is that a code is expected from the programmer first of all, and only then – the assessment, recommendations and certificates. Program. Experience is more important than estimates and that is it. If the employer insists on the opposite side, think twice before getting a job from him or her.

Get familiar with UNIX. Ubuntu installation and kernel compilation do not mean familiarizing with UNIX. Read about the engineering and scientific foundation which underlies the philosophy of UNIX. It is not obligatory to become a cool system administrator and to study tens of servers, it is simply better to get used to the main work principles and the UNIX way.

Mathematics is the main thing. Despite the exceptional consumer orientation of many software companies, the fundamental sciences always remain in the center of attention.

Ask questions. It is natural, if you do not find the answer in Google. Accordingly, don't ask questions which Google can answer. StackOverflow site is your best friend. Ask questions in the Internet, among friends, teachers, colleagues. Stupid question is better than ignorance.

Get familiar with versions monitoring systems. At least with the basic ones – SVN, Git, Mercurial. Open the repository on your machine and use it for homework and your own projects.

Get familiar with modern development tools. Usually at the universities don't pay much attention to the environment of development and other programs and utilities necessary for high-grade work. Many of the IDE are free, try Eclipse, NetBeans, Emacs, XCode, get used to the main work principles, and find convenient tool for you.

Learn how to use the debugger. It is so important nowadays and it is absolutely unclear, why universities are paying so little attention to this.

Learn how to use the main development methodologies. It is difficult to think about using them in the University’s life, but still it is possible. At least, you can try to use any methodology in a joint project with your friend.

Get familiar with the templates (patterns) of design. We have already spoken about it for many times but I will repeat. Here you will not get out of it, so you have to apply at least a pair of main patterns somewhere. Take your phone and look at the first available program: imagine how you can apply any pattern to its development.

Program in a team. Even together you will receive quite good experience, especially when you stick to the following tips: use the versions monitoring system, apply any methodology you can, use any pattern. Probably, at this moment you will think that all these things mean nothing and it would be much more easier and quicker to write a code without bothering yourself, and, it seems to me that you may be right, but don't forget – study is rather an exercise, than work. Practice paired programming.

Work on your own projects. Back to the first point – program, but do not limit yourself to homework or exercises from books. Start your own project.

Learn a new programming language. Sometimes I hear something like that «we are taught something, but I don't know where I can use it in life». Such people usually are so sure that they have perfect knowledge and after finishing a university they work on any other specialty, because they were not taught to program in a popular programming language. Forget the phrase «I will not use it in the future». When the children are taught to read in the kindergarten, nobody prepares professional readers. Children are taught to use the tool in order to receipt information.

Get used to phrase that a coding is far not the only thing you will have to work with in the future. Most likely, the developer will have to work with clients, to look for solutions of problems, to fight against tools and technologies.

Make decisions and convince people. If you aren't agreeing with the design manager or the client, try to convince them instead of executing the task with silent mats under the nose.

Insist on a pleasant atmosphere for you. The main thing for the good employer is the efficiency of the developer and if you do not like your job, it is difficult to be productive. This concept includes not only a table and a chair, but also schedule, building, office, the atmosphere, instruments of development and so on.

Don't forget about the Pareto principle. 20 percent of efforts give 80 percent of result. This is not a rule of cause, but quite obvious tendency.

Read classics: Code Complete, The Pragmatic Programmer, The Practice of Programming, Design Patterns.

Learn how to plan. The same university tasks: estimate, how much time it takes to do something and at the end analyze your work. Do it constantly and for different types of work. The developer who performs the work in time is much more valuable than the developer who sometimes performs the work quicker than others. Also don't worry about not estimating the volume of your future work – nobody is able to do it:-)

Organize your priorities. Here is another piece of advice from Captain Obvious. Together with the previous tips it is possible to increase efficiency at once.

Don't get stuck on the provision of work. Don't work against your will only because you will receive money now and here. The best way to protect your career is to develop constantly and work with great pleasure.

Here is the most important one: if you don't like programming, you don't become a programmer. It is very simple :-) The work without pleasure can't lead to something good in our everyday life.

I hope, in five years I will add this list with some new useful tips, but now you can give some interesting advice by yourself.
KlauS 8 may 2012, 15:19
Vote for this post
Bring it to the Main Page


Leave a Reply

Avaible tags
  • <b>...</b>highlighting important text on the page in bold
  • <i>..</i>highlighting important text on the page in italic
  • <u>...</u>allocated with tag <u> text shownas underlined
  • <s>...</s>allocated with tag <s> text shown as strikethrough
  • <sup>...</sup>, <sub>...</sub>text in the tag <sup> appears as a superscript, <sub> - subscript
  • <blockquote>...</blockquote>For  highlight citation, use the tag <blockquote>
  • <code lang="lang">...</code>highlighting the program code (supported by bash, cpp, cs, css, xml, html, java, javascript, lisp, lua, php, perl, python, ruby, sql, scala, text)
  • <a href="http://...">...</a>link, specify the desired Internet address in the href attribute
  • <img src="http://..." alt="text" />specify the full path of image in the src attribute