Friday, September 25, 2009

Fan Mail: Exercise for younger developers

This blog got mentioned on several college and university (private) forums, so your reviewer decided to write some helpful notices to young software developers.

Exercise 1 - Books
Go to your regular bookstore. Look at the books, "computer section". Which languages do you see? Take a pen and paper and write down:

Count each books of the same book as "1". That way, if there are 20 books about C# from 5 different authors, count as "5".

Go to bookstore _____
Number of Different C# Books ____
Number of Different Delphi books ____
Number of Different PHP Books ____
Number of Different Ruby Books ____
Number of Different Java Books _____
Number of Different JavaScript Books _____
Number of Different C++ Books _____

Do this for 2 or 3 bookstores in your place. Since bookstores sell only "profitable" books, which books do have demand and which books don't have demand? If there are 0 Delphi books, why don't they stock Delphi books? what are the answers?

Bonus:
How do you order a Delphi book, since most bookstores don't keep these?

Exercise 2 - Looking for a job
There are various ways to find jobs. Buy your local newspaper daily for 30 days and look at the classified sections, computer jobs.

Count each different advertisement as "1". That way, if there are 50 advertisements from the same company (who advertised it), count it as "1".

Helpful tips:
take down the phone number / or email address or address so you can match it the next day (or next week).

Newspaper _____ from date to date (take average 1 month)
Number of Different C# Jobs ____ near to my house
Number of Different Delphi Jobs ____ near to my house
Number of Different PHP Jobs ____ near to my house
Number of Different Ruby Jobs ____ near to my house
Number of Different Java Jobs _____ near to my house
Number of Different JavaScript Jobs _____ near to my house
Number of Different C++ Jobs _____ near to my house

Number of Different C# Jobs ____ far away/ or require long travel time
Number of Different Delphi Jobs ____ far away/ or require long travel time
Number of Different PHP Jobs ____ far away/ or require long travel time
Number of Different Ruby Jobs ____ far away/ or require long travel time
Number of Different Java Jobs _____ far away/ or require long travel time
Number of Different JavaScript Jobs _____ far away/ or require long travel time
Number of Different C++ Jobs _____ far away/ or require long travel time

Take various newspaper or on-line sites and tally them up:
- Buy 2 or 3 local newspaper and look-up various job sites daily.
- There are also free newspapers that have only jobs on them.

If you are curious, you could call them up and ask for salary information. or what the expected job would be like:

Average salary for C# Job ____
Average salary for Delphi Jobs ____
Average salary for PHP Jobs ____
Average salary for Ruby Jobs ____
Average salary for Java Jobs _____
Average salary for JavaScript Jobs _____
Average salary for C++ Jobs _____

High/Lowest salary for C# Job ____
High/Lowest salary for Delphi Jobs ____
High/Lowest salary for PHP Jobs ____
High/Lowest salary for Ruby Jobs ____
High/Lowest salary for Java Jobs _____
High/Lowest salary for JavaScript Jobs _____
High/Lowest salary for C++ Jobs _____

After 30 days, you can report your findings to the whole class, or maybe keep it for yourself. (It is also a useful exercise for people who keep saying they cannot find a job).

Since young people are most likely to get fooled, ask:

Newspaper _____ from date to date (take average 1 month)
Number of Different C# Jobs ____ for fresh graduates
Number of Different Delphi Jobs ____ for fresh graduates
Number of Different PHP Jobs ____ for fresh graduates
Number of Different Ruby Jobs ____ for fresh graduates
Number of Different Java Jobs _____ for fresh graduates
Number of Different JavaScript Jobs _____ for fresh graduates
Number of Different C++ Jobs _____ for fresh graduates

Number of jobs for >= 5 years experience:
Newspaper _____ from date to date (take average 1 month)
Number of Different C# Jobs ____
Number of Different Delphi Jobs ____
Number of Different PHP Jobs ____
Number of Different Ruby Jobs ____
Number of Different Java Jobs _____
Number of Different JavaScript Jobs _____
Number of Different C++ Jobs _____

Ideas to do during job interview:

- ask whether there is someone to guide you. Hopefully, you are not the "only" person there :)

- look at the surroundings when you are at the job interview. hopefully, there are not old computers and the place is well maintained.

- ask whether they use latest versions of products. (maybe they use something since 10 years ago, like Delphi 6 :))

- ask what are work timings are, whether you have to come back on Sat/Sun/ or maybe the job is freelance (no payment until finished) or contract (no job after 6 months).

- what are advancement opportunities. For example, if the company is only 3 or 4 people and you are there for 5 years, will the company still be 3 or 4 people? or the job is dead-end?

Exercise 3 - Looking at schools and tests

Since advanced programming techniques are thought by experts, so, there should be some experts who are good enough to pass the Microsoft-certified Trainer (MCT) or Oracle Certified Trainer tests.

What courses can you sign-up for C# ____________
What courses can you sign-up for Java ____________
What courses can you sign-up for C++ ____________
What courses can you sign-up for Delphi ____________
What courses can you sign-up for Ruby ____________
What courses can you sign-up for (whatever) ____________

What are the costs of attending such courses? Is the school accredited, that means, they are licensed to teach such courses or a diploma mill that churns out worthless certificates?

Good examples:
- You go overseas or apply for high-ranking job later in future. Which diploma or degree or training courses or certificates can you show or put in your resume/CV?

- You lose that piece of paper and want a replacement. What do you do?

- If you put some fake credentials on your resume/CV (like a fake diploma or course run by a diploma mill), it will look bad on your resume/CV. Think about it.

Exercise 4 - Getting things done
Key to learning is having your personal software you can use.

Nearly everyone has PHP, Java, Express Microsoft C++.

What are costs of licensed PHP _____________ (IDE / or libraries) ?
What are costs of Java _____________ (IDE / or libraries) ?
What are costs of licensed C++ _____________ (IDE / or libraries) ?
What is cost of licensed Delphi _____________ (IDE / or libraries) ?
What is cost of licensed Ruby _____________ (IDE / or libraries) ?
What is cost of licensed JavaScript _____________ (IDE / or libraries) ?

Ask around what professionals use, like your lecturers, or your professors. Also helpful, is job advertisements. They normally specify requirements, so you can get idea whether that product is popular or not.

Rule of the thumb:
If it costs too much, it would be out of reach for many people, and hence, will not have so many jobs.

If it costs too much, and there is some exclusiveness, that also means jobs are hard to come by.

If the costs are low, then there should be plenty of jobs. E.g., PHP, Java jobs.

Exercise 5 - the website
Since most companies have websites, there is an extension called "php", or "do", or "asp" or "aspx".

Simple sites:
What are costs of hosting C# site _____________ ?
What are costs of hosting Java site _____________ ?
What are costs of hosting C++ site _____________ ?
What are costs of hosting Delphi site _____________ ?
What are costs of hosting Ruby site _____________ ?
What are costs of hosting JavaScript site _____________ ?
What are costs of hosting PHP site _____________ ?

Advanced site:
What are costs of hosting huge C# site _____________ ?
What are costs of hosting huge Java site _____________ ?
What are costs of hosting huge C++ site _____________ ?
What are costs of hosting huge Delphi site _____________ ?
What are costs of hosting huge Ruby site _____________ ?
What are costs of hosting huge JavaScript site _____________ ?
What are costs of hosting huge PHP site _____________ ?

It's quite easy because you look at the same newspaper and go to classified section, Computer section.

Exercise 6 - the Program/Application
This website has a download. It contains programs/application. The programs/application are written in ____

Since you have the number of jobs, number of websites, number of companies, then you can also calculate the number of programs written:

Number of C# site/application _____________ in your city?
Number of Java site/application _____________ in your city?
Number of C++ site/application _____________ in your city?
Number of Delphi site/application _____________ in your city?
Number of Ruby site/application _____________ in your city?
Number of JavaScript site/application _____________ in your city?
Number of PHP site/application _____________ in your city?

Thus, you can then get idea:
There's a job if there's money, right? If there is active development, then they need developers/ or programmers or there are jobs you can find.

Exercise 7 - the Fall from grace
Since this year (2009) is bad year, you can always ask around from people who lost their jobs.

Since most of them will be at, say, places at soup kitchens, or on the street, maybe you can ask them for their experiences, or what went wrong in their life.

You can learn alot from the older people, like those who lost their jobs, or got fired, or laid-off.

Questions you can ask:
Hi _____, do you have 5 minutes to ask some questions?

Are you a former software developer/ or former computer developer/ or used to developer in such and such?

What advice can you give to younger people? What can I learn from you?

What kind of skills should I learn?

What kind of issues did you face?

[You might want to give them some small money in return.]

Exercise 8 - the graduate and job numbers
Suppose there are always young people joining the work-force and older people are present.

Let's say you live in a small city and there are 3 or 4 universities at your location, and maybe 5 or 6 schools.

Given there are 300 people who graduate from IT courses each year.

Say, with 3 or 4 universities, there could be maybe 2,000 people entering the work-force every year, bringing supply to the work-pool.

Now suppose:
there are 100 to 150 C# unique jobs advertised every month, that is:
125 * 12 = 1500 jobs advertised every year. (average)

there are 75 to 100 C# unique jobs advertised every month, that is:
90 * 12 = 1080 jobs advertised. (average)

there are 1 or 2 Delphi unique jobs advertised every month, that is:
2 * 12 = 24 jobs advertised. (average).

There are thousands of people competing for the same job, how lucky are you to get the Delphi job?

Conclusions
Look closely at the numbers and the applications, websites, jobs.

Which language do you want to learn to get good job?
Which language should you not learn? :)

4 comments:

Dorin Duminica said...

I must say that this "tutorial" is quite good for beginners and NOT only.

Delphi Haters said...

Dorin,
how many Delphi jobs are there near your house?

Try to get the idea of localization...

There's no point telling about a job in USA or India when it's so far away...

There's a private (student) forum in Germany that linked to this site... and of course, how many German Jobs are there in that location for budding Delphi developers? you get the idea...

Delphi Haters said...

I forgot to mention, some students will be graduating soon and looking for a job...

Do you have a job? Why are there no jobs? Maybe because of high costs?

Delphi Haters said...

I added exercise #8 to get some prospective ideas