I learnt to code back in 1998. My aunt taught me the basics of C++, and I was fascinated by all that I could make my bad old x386 computer to do. Soon enough I was solving complex math problems, and using special ASCII characters to create interesting pattens on screen. It wasn’t long before I wrote the code for two players sitting on the same machine to play Pong. And that made me a star.
I was in a rather stud class back then (the school I went to in class XI had a reputation for attracting toppers), and after a while I think I had used my coding skills to build a reasonable reputation. In other words, coding was cool. And all the other kids also looked up to coding as a special skill.
Somewhere down the line, though I don’t remember when it was, coding became uncool. Despite graduating with a degree in Computer Science from IIT Madras, I didn’t want a “coding job”. I ended up with one, but didn’t want to take it, and so I wrote some MBA entrance exams, and made my escape that way.
By the time I graduated from my MBA, coding had become even more uncool. If you were in a job that required you to code, it was an indication that you were in the lowest rung, and thus not in a “management job”. Perhaps even worse, if your job required you to code, you were probably in an “IT job”, something that was back then considered as being a “dead end” and thus not a very preferred job. Thus, even if you coded in your job, you tended to downplay it. You didn’t want your peers to think you were either in a “bottom rung” job or in an “IT job”. So I wrote fairly studmax code (mostly using VB on Excel) but didn’t particularly talk about it when I met my MBA friends. As I moved jobs (they became progressively studder) my coding actually increased, but I continued to downplay the coding bit.
And I don’t think it’s just me. Thanks to the reasons explained above, coding is considered uncool among most MBA graduates. Even most engineering graduates from good colleges don’t find coding cool, for that is the job that their peers in big-name big-size dead-end-job software services companies do. And if people consider coding uncool, it has a dampening impact on the quality of talent that goes into jobs that involves coding. And that means code becomes less smart. And so forth.
So the question is how we can make coding cool again. I’m not saying it’s totally uncool. There are plenty of talented people who want to code, and who think it’s cool. The problem though is that the marginal potential coder is not taking to coding because he thinks that coding is not cool enough. And making coding cool will make more people want to take it up, which will lead to greater number of people take up this vocation!
Any ideas?
‘Coding’ in software services job currently is a very ‘fighter’ job (to borrow your phrase), while the coding needed in products company like Google, Facebook etc is a ‘stud’ job. We should differentiate between the two (a bit like your comparison of derivatives based finance jobs v/s equity / debt capital markets job). My contention is that by focusing on the kind of coding needed and being done in tech product company, we can make it cool! Another way will be to highlight the innovative algorithms behind the code and share the creativity involved in designing those.
Don’t completely agree with that. It’s true coding has come to be known as this dull activity that is reserved completely for even more dull geeks & nerds. I can relate to your school experience – I made a PacMan game on C++ in my 12th std and that was the most exciting project I had done back then. But as I entered the IT sector, it seemed to become more mundane because it was increasingly viewed as a mindless activity catered to what industry required and that paid a decent sum of money. No creativity involved, they said. As for the solution, I genuinely think the time we live in right now (Apps, open source coding etc.) offers so much inspiration to bring back the “cool” into coding. Kevin Systrom was a self-taught coder who came up with Instagram, the Flappybird game creator broke the internet (literally) with his simple but brilliant concept. Reading these things is enough to get anybody’s coding instinct going. Hackathons should be marketed better; more angel investors need to be made aware that coders are worth investing in. Programming as we know it should be more than picking up a book on OOPS by E.Balagurusamy …
And thus to conclude, coding should not be taught only to cater to existing markets but as an way of creating new markets by themselves.
Systems programming is a completely different world in my opinion.
You could be looking deep into the kernel code, and/or trying to make packet flows faster. You might be trying to address memory/scale requirements or figuring out why system calls couldn’t complete in time. You might be asked to change functions to decrease convergence times or improve system/storage efficiency even a little bit and when you see the kind of cascading effects it can have, it can be very rewarding.
It is perhaps a harder job and perhaps I’m speaking only for myself, but it is what it is.