Road Map to Great Software Career – Part I
Introduction:
Now a days, I could see the talented young people / students feel that the software industry has lost its shine. Even the software professionals, who have acquired 20 plus years experience in the software industry, curse and blame this industry. In common, some of us believe / trust that this software industry has no future for talented people. Is it true?
On the other hand, a fresher who wants to enter into software industry has no clue on how to make it. Many engineers take other non-engineering jobs because they are not well prepared. How to prepare yourself?
Many of the 40+ aged group people feel the middle aged career crisis. Why?
The following article/book tries to address the above questions. Please remember this article is not the end, it is just the beginning of the discussion / thought process.
Opportunities of Software Industry?
Statistics (1)
Indian software exports are huge – roughly US$ 75 billion (Rs. 5,25,000 Crores) in 2014/15 (and US$ 100bn if BPO services are included) – and it is registering double digit annual growth. For better clarity in comparison, India imported 80% of crude oil worth 65 billion in 2015.
It grows approximately 20%; The growth percentage may slow down in future; But in terms of number it is really huge.
In 2013-14, export destinations were: North America (63%), UK (13%), other Europian countries (11%), Australia/New Zealand (4%), Asia (6%)
In the early 1990s, 75% of work took place on-site, 25% in India. By 2013-14, it was said that 20% of work took place on-site, 80% in India. This means that net foreign exchange earnings have risen substantially since offshore work requires much less foreign exchange outflow than on-site working.
The overall IT sector in India represents just over 5% of GDP in 2014-15.
Domestic industry (2)
The software market in India is estimated to be US$ 5.3 billion (Rs 35,401 crore) in 2016, a 12.8% growth over previous year. Developments in e-commerce and cloud technology sectors are expected to boost the demand as per Gartner – a reputed technology research firm.
Prime Minister Modi’s digital India initiative will increase the domestic market of the software industry.
Problems (3):
The software industry is the most powerful employment generator in the country. But most of the Indian software firms struggle to get talented people. It is the biggest problem of the software industry but it is a opportunity for you.
Case Study:
During August 2016, I have enrolled myself in www.Naukri.com as a job seeker to understand the opportunities in the industry. My resume reads as follows:
Front End developer with 5 years of experience:
Skill : React JS / Angular JS
Special Note: I love technology and I can learn any new JS frame work
Result:
I got around 60 calls in 15 days time and the salary ranging from Rs.7 Lakh per annum to Rs.18 Lakh per annum. Many of them said that salary is not a constraint for good developer.
I have compared these offers with other professions like Doctors / Lawyers / Government officials / other segment of engineers profession like mechanical / Civil etc with similar experience. Obviously IT industry is definitely the highest paying industry and it will remain so for another 10 years.
Other advantages:
Industry is talent hungry. There is no discrimination with regard to caste / religion / segment of the society. You may be from village or city, if you are good in technology you will be respected by others.
It is a gate way for lot opportunities. A person, who starts the career with Rs. 10,000 per month, can end up earning US $10,000 in few years of time.
Even a small idea on the app will make you billionaire; Read about success stories of Technical starups world wide. It also gives opportunity to become a technical entrepreneur.
If you are a strong technical person, just visit www.freelance.com and understand the opportunity to work as a freelancer from India for any country in the world.
Conclusion:
In short, you need to think 10 times before skipping the software industry as your career.
Understand your IT Engineering
Professional course Vs Regular course:
Most of the students from college do not understand the difference between professional course and the regular studies. For example, in 10th Std a student who completes reading the History book 100%, he is considered to be a good learner. But in BE(IT) student compete the reading or JAVA Book and score good marks means he just started learning of JAVA. Completing the book and passing the exam is just a beginning of learning and not the end of the learning.
The System:
A person who completes the Charted Accountant exam will definitely know how to do prepare balance sheet of any corporate sector. He will be productive on the first day of the job. The system is so rigid and it will not allow non-performer to cross the CA exam. On the other hand, the BE(IT) engineer can get the certificate with 80% marks, but do not have any idea on how to write a program. In my experience, I could see in a class of 50, only couple of them are interested / tried doing program in most of the collages.
The software industry is so vibrant. It changes every year and some time even every month. For example, Angular 1.6 version and Angular 2.0 versions are completely different. It is difficult change the educational system so copeup with the every changing system.
The objective of this article is not to curse the existing system and highlighting the problems of the system or changing it; But how to overcome the problems as individuals. Let’s stop beating the system topic for now.
DNA of a Developer:
Let’s understand the DNA (practice / habit) of the good developer.
He always connects with Technical people:
In your collage days, you might have noticed few people talk technology and its challenges amoung themselves. They talk to others about movies / drama etc. But when they are alone, they talk about technology and share experience and knowledge. Simple rule: If they talk to you so nicely about movies etc, i.e other than technology, they consider you that you do not understand technology stuff and they do not have anything to learn from you. Just rewind your collage days and think where u stand.
He always existed about new technology
One question and two reactions:
“Hey!. I have an interesting problem. It needs to be solved in Scala. Can you do it for me”
Answer – 1: “ What is scala” / “ In my collage they taught me only JAVA” / “I do not know Java” / “It is difficult for me to pick up Scala” / “ I am busy” etc
Answer – 2: “Nice. I will learn Scala and do it. Can you give me the project”.
Always he chooses learning opportunity.
Most of the strong technical people select start-ups (small technical organization / Consultancy). This gives them a great learning opportunity. They do not go by the bigger organizations. After 2 years of career, the people who work in strong start-ups, have lot more technical exposure than the people who work in bigger organizations.
If he joins in bigger organization, he selects the much stronger technology division / horizontal or practice. He fights to get the better project. He looks for change and takes the risk of even switching his job and / or projects. He hates to be idle / kept in bench. He contributes to the organization and creates impact.
He do not “Crowd”
Many take easy path. The path of achievement never is easy. For example, when you think about web development, many choose Word Press or xxx because it is easy to learn. The word “Easy” is little slippery word in the career. If you can complete the ‘Certification’ on any subject without much effort, the market value of the ‘Certificate’ will soon reduce to zero because everyone will have the same certificate.
A strong developer will not follow mass crowd, he does some research or follow another strong developers. The technology you concentrate should be niche at the same time it should have moderate market to get the jobs.
He networks with other technical people in the city / Web
They always seek friendship of the other technical community. For example, there are 100’s of technical meeting happening in major cities during the week ends. This will be a great opportunity to know what is happening in the technical world.
He likes experiments:
The strong technical people will not limit their exposure with one technology. You could see people claiming “I have 10 years experience in Java”. But when JAVA lost the shine, it is difficult for them to move to other technology because they are not flexible. A strong Developer will always try the new technology in his work or out of work. “I worked in java; I have good exposure with Scala and GO; in fact I did couple of my personal projects in GO; I loved it”
He does not chase money; But money chases him:
Just take a look at technical start-ups and their success stories. Take a look into Google play store and the top apps and its revenues. Take a look at top start-ups and the salary offering. You can compare a salary of normal programmer with 10 years of experience and the strong developer’s 3rd year salary; you will be amazed to see the difference.
A fresher gets Rs. 70,000 per month and another fresher struggle to get Rs. 7,000 per month. One chases the money and for other, money chases him.
His hobby / passion are technology:
A good developer feel exists when he is struck with the problem. His energy level goes high when he chases the solution to the problem. The longer hours of work on finding the solution cannot deter him. He never curse his job / work.
He hates routines:
The good developer always looks out for new things. The solved problems or routines make him feel that the work is boring. Even though he can complete the work quickly and get lot personal time, that will not give him any happiness. He considers them as “boring” work.
Conclusion:
In simple terms for strong developer, the profession / passion / hobby are technology only.
Road Map to become a Good Developer (Fresher Road Map)
The following are for just guidance only. It is for your consideration. This article gives you enough insights about the successful people and their practices. You need to think what is good for you and take a direction.
Ideal age for Learning Programming:
The ideal age/day of learning simple programming language is the first day of the 6th standard boy’s holiday season. The next best day is today and the age is your age.
The following steps are for the people who want to achieve their goals. If you are jobless, the expectation is to spend 10-12 hrs in front of the computer and learn every day. You need to think that you are on job (work from home) for next 3-6 months and prepare for your future. Continuous learning and hard work will always pays.
Road Map – Mile 0 (preparation)
Learn Typewriting:
Common mistake: Most of the IT engineers do not understand the importance of the learning proper typewriting. Many of them are even against the idea of learning typewriting. They learn while working as a programmer.
The practice of typewriting will give you additional advantage of speed in initial days. You can spend 60-70 hrs of typewriting practice and the goal is to type the any passage (100 lines) without seeing the key board. It means, spend 30 minutes to 60 minutes every day for 2 months.
For example, a programmer who knows typewriting can complete the coding with 20% less time than the programmer (similar capability) who does not know the typewriting. For the first couple of years, you can get every day 60 to 120 minutes of saving in typing speed compared with others. Just calculate the return of investment. You invest only 1 hrs for 2 months to practice typewriting but gain 2 hr of free time every day.
How: There are lot of websites available to practice typewriting online. Just start spending 2 hrs of time. (eg : http://www.learntyping.org/ )
Road Map – Mile One
Common Mistake:
It is very common that the IT engineers start learning JAVA. Many find difficult in understanding JAVA as language. If they do not understand the concepts of JAVA on the first week, they lose confidence and many drop the idea of becoming a software engineer. It is always better to taste quick wins in the initial learning phase. Please follow the alternative path.
- Learn HTML / CSS
The HTML / CSS are the easiest one to start learning computer language.
Total Hours: 150-200 hrs
Target: Take 10 HTML / CSS best designs and you should be in a position to replicate the web pages with pixel perfection. Please remember you should not refer the HTML/CSS code of the website.
How: Search for “best CSS websites” in Google. It gives lot of website which uses CSS-HTML. There are few websites which lists the well designed websites. (eg. http://www.csswinner.com/winners) You can choose any of them and start designing them. It means you need to replicate the designs.
Most Common Mistake: Mostly people read www.w3schools.com and practice it. It is very easy to practice in w3schools. In few hours they feel that they have learnt all aspects of HTM/CSS. But they do not know what they do not know. It gives them false confidence and they move further without strengthening the basic. So never exit until you complete redesigning of 10 websites on your own.
Best Practice: After completion of redesigning, you can create your own website. It means, you take any one of the industry / company and design the website for them on your own. It will challenge your creativity and helps you to master in designing.
Ref : List of free video sites are given below.
- JAVA Script:
There are millions of developers who love Java Script, popularly known as JS. This is your first step towards thinking logically.
Total Hours: 150-200 hrs
Target : Search for complex Java Script problems in google and solve them
How : codeacademy.com and other sites to learn
The above steps take approximately 300-400 hrs of effort to complete and you need to take only 30-40 days to learn the basic programming language. We recommend you to do the following in this phase.
- Reading Technical Blogs (Every day 15 minutes)
- Understand how to effectively use stackoverflow.com
- meetup.com : The technical meetings of the people are commonly known as “meetups”. There are multiple technical meetups in each city; the meetups are used to learn / share or even seek jobs. You should enrol yourself in www.meetup.com (E.g Meetup on JavaScript) and make sure that you attend few technical meetups every month.
By the end of this phase/mile, you will have clear idea about HTML / CSS / JS and you can develop website on your own. You will have fair understanding of how to learn technical stuff and you should know few people from the industry who are active in the technology.
Check point: visit http://hacklearning.org/ and other coding challenges site. You should be in a position to score marks / points in these sites. The job comes to you, you need not run for the job.
Soon : Road map – Mile 2
Note: There are 5 parts of the book will be published in the site. It will be converted as Free E-book and send across all the collages for students to get benefited. Please read all the 5 parts of the book to make your successful career in software.
This article provides an excellent approach for freshers and entry level programming. This could not be considered as career path because a career spans for atleast 30 yrs. At the most the specifics of article would stay relevant for a career of five yrs.
The Million dollar question, however will remain unanswered, what will happen to career after 10 yrs. Management is cone and entry level recruitments are funnel based.
If 1 million openings for entry level programmers are there every yr means after 10 yrs hardly few thousands only can reach mid management and after that it will become only hundreds. So the progression decends as the experience increases. If no progression the cost of experienced personnel will be very high and not feasible for business to retain them. Hence the challenge for people in 40s. Though this is common for service industry it is more vulnerable in IT industry. In next 10 or 15 yrs IT recruitment for entry levels could go dry like engineering colleges. Hence we r living inside a bubble.
My advice to youngsters who have high aspirations to get into innovation mode rather than just employees. Think outside the box with new models, align with core business houses as tech partners, implement outcome based projects, enhance core businesses revenue etc.
It’s high time we relook Narayanan Moorthy’s model and create some other new models of generating opportunities.
These could be premature comments of mine based on just part I of the whole set.