I have a 16-year-old son who is very passionate about computers and
programming and not so passionate about school. He would rather just be allowed
to sit and do code all day.
Would you say that I should just go with my gut feeling and let him do this
instead of having the focus on Dogwood Diplomas and college where we are
fighting all day long to get him to do his schoolwork? Of course, I will still
have him do his Math and English.
In this excerpt from
Answercast #23, I discuss many of the things learned in a school environment
that will help with a future work career in coding. It’s best to keep up with
all subjects in school.
]]>
Focus on coding?
One of the things I’ve learned over the years is best reflected in an article I wrote some time ago called “The one thing that I wished I’d done differently“.
The short answer is: as much as it’s tempting to let him do only or primarily coding, the fact is that the real world needs more.
School is important
When he gets into a situation where he’s actually doing his passion as a job (for other people), there’s so much more to the work than just writing code.
The one thing that I wish I had done differently was pay more attention in English class. I absolutely hated English class and the reason was that the class was taught in such a way that I was being forced to write about and learn about things that I didn’t care about. But… the fundamentals were still critically important.
As I look back and see not only what I’ve turned into (primarily, a writer), but what I was doing while I was writing code (while I was working at Microsoft writing software), it was communicating with other people, communicating in the written word with other people.
That’s why I keep focusing back on English class for me, specifically.
The fact is that no matter where your son ends up working, there is much more to his job than just writing code.
Other skills set a coder apart
There will always be so much more at the job than just writing code, and to be honest, one of the things that will set him apart as a potential employee is not just his ability to code, but his ability to do all those other things that are involved in doing the job.
Sometimes, people refer to them as soft skills. I hesitate to classify things that way though yes, there’s a lot of stuff in school that has nothing to do with the eventual job.
On the other hand, all that stuff in school is teaching you:
- How to deal with other people,
- How to deal with things that you don’t want to deal with (even when you’re coding, there will be times), and just
- How to learn (how to go about finding answers to problems that you need to find answers to).
So, while it’s hard for me to say you need to go ahead and pound on him and make him do the work in school, I think more importantly, he needs to realize that there is significantly more to life than coding.
Software engineering skills
There is significantly more to being a software engineer or programmer than just writing software. All that other stuff that he’s doing in school will turn out to be critically important.
I know it’s a lesson I learned much too late. It’s a lesson that I wish I had learned early on. It’s a focus that I wish I had taken when I was still in school: to take a look at some of the other disciplines besides just pounding out code.
Next from Answercast 23- Can I combine two hard disk drives into a single logical drive?
When I applied for my first job as a programmer, one of the questions I was asked during the interview was, “What kind of stuff can you program.” I answered, “Anything as long as you give me the specs.” His comment stuck with me for the rest of my life. He said “Anybody can do that, the problem is, you don’t usually get the specs. You have to get those from users who usually doesn’t know what they want.”. In other words, in order to be a good programmer, you need to be able to communicate with users who doesn’t necessarily know much about computers and determine what they need.Those communication skills paid off, as I was supplied with the specs on only on project I’ve ever worked on.
When I interviewed for my first “real” programming job, I brought along samples of my work, like an artist might bring a portfolio. I don’t know how well that would work if your previous experience had been working for someone else, and they owned the code, but up until that point, all of my code was “mine”.
As for Mark J’s comments about specs (or the lack thereof), I have also been in programming competitions where you were given specs about a week before the competition. Then, on the day of the competition, you were given “revised” specs. Again, this is closer to “real world” programming where you’re constantly working towards a moving target. (There were also points given to those who included certain features that weren’t even in the specs.)
How to communicate clearly is definitely a required skill that you can’t learn just by pounding out code. How to solve a complex problem by breaking it into manageable pieces is another. If you are producing code only for jobs that you want done you will get no experience in other areas. You can build a thousand birdhouses but that will not make you a skilled carpenter. It will only make you skilled at building birdhouses (and even that isn’t definite).
It depends on the student. We pushed our son into college instead of a ‘tech’ school because all the advisors in his highschool said he could handle it (very intelligent, but learning disabilities). The pressure got too much for him. We would have been better off sending him to a tech school (most Tech schools still teach English, just not as much). Some students start with a Tech school and when they become older and wiser, continue on with their education. If all the kid wants to do is code, he can get a job coding, but without all the other skills, he might end up just a low end programmer – maybe a good programmer, but still – not on the path for advancement. I have worked with people like that before. Only want to know their own little niche of information, and the rest of the world passes them by. Myself – I love coding. I don’t get to do as much at 60 as I did at 20, but it does make my job still fun after all these years! My job name has changed from Programmer when I first started, to Business Systems Analyst – but not many people get to do what they love to do for so many years!
I went to college to be an electrical engineer. Made a good living at it, too. But over the years, my career has zigged and it’s zagged, and I’ve done a variety of stuff only somewhat related to engineering. The one common factor to ALL of those jobs was that I was a troubleshooter. A problem solver. A professional hand-holder. And while engineering is what got me started, it was a wide range of experiences that made me adaptable to utilizing my problem-solving skills even in jobs that had nothing to do with electronics. So much so that I created my own company (which still pays me well) specifically designed to resolving other companies’ problems. As the world has evolved, I’m less attuned to electrical application, but more skilled in applying engineering principles (analysis, attention to detail, observation) to unrelated fields, including such diverse skills as repairing a company’s Customer Service program. While a lumberjack may focus on the trees, it helps to know where the forests are, and also what faciliatates their growth and survival. A variation on the inability to see the forest for the trees. There is no such thing as TOO much education, but a lack of it can only hinder a person.
My brother had the incredible bad luck to be laid off from his programming job at the same time as something like 6,000 other programmers, all thier jobs outsourced. It took him several years to find another job due to the market being just swamped with talented people. He was finally hired by a small firm, not for his skill in programming, but for his ability to work with the non-techincal staff. That job eventually led to work with a larger firm and better pay. But the reality is, if all you can do is code, no matter how good you are, your work can be outsourced.
Whilst agreeing generally with all of the present postings, I recognise Mike’s career as being very similar to mine, particularly the trouble-shooting.
Generally as an “amateur programmer” etc, I tackled the programming that my “professional” colleagues thought impossible or very difficult.
In hindsight, having studied Latin and Freench at school was extremely useful, given the precision of symtax etc required in programming.
Also, what is the son programming – is it a real-world situation responding to “customer demands”; or is it purely tackling a task of his own making – similar to the bird-box joinery?
To produce really successfull programs, one must be able to view the requrements from the user’s viewpoint – what may seem simple and easy to the programmer, may be utterly confusing and perverse to the potential user.
So inter-action with the potential users of all sorts, from the presentation of the input end, to the layout and titling of the outputs is extremely important.
And then there is the testing of the programs – a huge field in its own right.
A programmer will tend to stay within the parameters of the program when testing – but the users will accidentally or otherwise, go outside them.
At a simple level, using alpha “O” in place of numeric “0”.
With Credit and Debit cards, is the input required in the 4 blocks of four numeric characters; or should spaces be omitted; should the program automatically detect and adjust for these?
How many of you have seen the programs where the number MUST be inputted without the spaces and without explanation, followed by a confirmation presentation showing it with the spaces present?
It is a long and valuable answer. When I read “focus on programming” I assume this is a focus area, not devoting the whole life “only” to programming. Programming computers is a great field for learning logic and acquiring the confidence of every problem has a solution. Of course the boy will have to learn write, socialize, swim, love, etc, etc, in the way. but this is obvious for me. Regards
06-Jun-2012
Reading this article and the thoughtful comments obviously from readers with years of life experience brings a smile to me. Thank you so much for sharing. I studied business but eventually I become an non-institutional educator, training niche population. Imagine how amused I get each day listening to teenagers or young adults share with me their beliefs and values.