Another Proof of the Impossibility to Lose 40 Pounds in a Week
As of late, lots of my non-IT friends have bothered me with questions, different in style and wording but similar in topic: how to become a full member of the IT community quickly and efficiently. With time, my answers became more and more complicated. At first, I just advised the programming languages were worth attention because of their visibility on the market. I advised to take up QA/QC, explaining it by “a low entry threshold” for people without specific education and with a vague understanding of Boolean multiplication and addition tables or ability to tell between a bit and a byte at least. Actually, now I think that all these people’s ship has sailed and they have no future in IT without solid professional support, investments and hard work. A three-month course in Java will not make you an IT professional. (Tweet this) Never! It worked in late 90s and on the eve of the Y2K problem, but even the majority of those who managed to squeeze themselves in IT were pushed out by strict ticket collectors in 2001.
To be successful in IT today you need three things:
1. Be Ready to Deliver 120% Performance.
You should be ready to work to the maximum without breaks or holidays for at least two years, or less for some and more for others. Why so long? Because being a software developer means possessing a unique habit of thought that cannot be developed by mere reading of a book or even a lot of books. It should be learned and drilled until it is your second nature. However, it applies to any profession. You have more chances if you are a good engineer, as you are very likely to have structured thinking. However, I think that it does not matter where you succeeded in: this type of thinking will come in handy in many areas. All in all, learn to count from zero and put points instead of comas in decimal fractions – you will feel as if you belong.
2. Enjoy the Work You Are Doing.
You should enjoy a fine-tuned and properly functioning programme, even if it is a home task in Basic. If you do not bliss out that the programme started working after the 10th attempt and if you do not want to improve it right away for it to print the result better, you are a hopeless developer. I do not want to offend anyone, but you cannot be successful if you do not enjoy your work. Fortunately, many people are pleased with everything they start succeeding in. If you are one of them, you might be in luck.
3. Mere Knowledge of Programming Languages is not Enough.
If you do not want to look like an absolute zero at an interview, along with a programming language you should know the following:
- The main processes of software development, all those scrum-waterfalls, but it is not absolutely necessary to name specifically these two as all of them include, to this or that extent, requirements management, quality assurance, task allocation, communication with colleagues and the customer, and so on and so forth. It involves lots of non-technical (although, rather engineering-related) things, and you should clearly understand what you need and why you need it.
- Besides, you will need to know some basic theory of logics, algorithms, binary arithmetic, the structure of data used by computers; you will have to possess a slightly-above-dummy skill with at least one modern OS, keeping in mind that only few of those boasting about their advanced user skills in their CVs actually reach the dummy level. If you start learning any programming language before you acquire this basic knowledge, this programming language will come in handy. You will resemble a Neanderthal with a calculator who can add up 2 and 2 but has not clue how it is done and why it is needed.
- Yep, ability to write and read in English is a must. We sell ourselves to those guys abroad and must comply. If you can read this without looking up each word in a dictionary, you qualify. :)
Reasoning from the above, I recommend finding a university that will teach you the basics (1), (2), and (3) rather than looking for a course in Java. You will have to learn (4) yourself if you failed to do so at school or university. And only then you will be allowed to write at least something in your major programming language.
By the way, why only in one language? It is bad manners to know only one programming language and, for example, data layout. Usually, any software developer is proficient in one or two languages and can read in 1-5 others to understand what the program does, or even better, he can do it by the program’s source code (to choose the main language, he has tried several others). Moreover, few can work properly with only one programming language.
But I‘ve digressed. So, instead of course in Java, find a university with an intelligible curriculum, gradual increase in difficulty and a comprehensive approach to stuffing you with knowledge. Well, you can manage even without a university, and many of my colleagues were clever enough to succeed without it, and if you were one of them, you would long have our salaries in foreign currency, stability and professional opportunities that attract you so much in IT. Alas, the majority of us spend years taking tests and exams to obtain an absolutely useless specialist diploma in vain. We would have learned IT anyway.
In QA/QC it is the same as in programming, only slightly easier. However, where it is easier, there are long queues of young and clever trainees, let alone old and stupid ones but nonetheless willing. Are you ready to compete with them? Take a higher start. It will not be easy, but it will definitely be more fun and no queue.
So, is it clear? You can be your own university: throw yourself in at the deep end and swim out. It is imperative that your swimming pool is not dry and shabby. Good luck! And I mean it. And this job is really worth it.