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.