I remember the first time I became interested in computer programming – I was 10 years old and was fascinated by what I was seeing on the screen. I wanted to know how it got there and how someone could make that stuff happen.
That’s what started it all.
But there are three things that I wish I had known when I had gotten started that I understand now.
1. Insane Levels of Patience
When programming, you’re writing characters on a screen in a language designed to act as a middle-man between human and computers. You’ve got to be extremely verbose and it takes several lines to make the simplest thing happen.
You have to write code not only for the average user that’s going to use your program as expected but for the user that’s going to try to break what you’ve worked so hard to build.
There will always be bugs in your software and you will hear about them. Prepare for that.
2. You’re Never Done
I firmly believe that software is a craft and I’m skeptical if you can ever master it. You have to have a constant willingness to read, learn, experiment, and repeat for years.
There is always something new and you’re never going to be done.
Being comfortable and happy in that tension is key to success.
3. You’re going to be frustrated. A lot.
Accepting that you’re going to be frustrated more often than not is absolutely essential.
There are going to be hours where you’re trying to understand the compiler’s error or why the browser simply won’t respond to your click.
Realizing that it’s probably going to be something as simple as a misplaced tab character or semicolon will help you deal with said frustration later.
Grasp those three things and I think you’ll be fine.
And for what it’s worth, that same fascination I had 16 years ago still exist today.
Sunira Moses says
And if you work for any sort of company with non-technical customers, be prepared to break everything down into very simple terms.
And also for people to ask you to make things more ’roundy’.
The hardest part of both my jobs is working with non technical people to come to a consensus on what the final product is and actually mean the same thing. 🙂
dewde says
“and actually mean the same thing”
Brilliant. And true.
And yet half the time it’s hard enough to get software developers who are working on the same project to mean the same thing, let alone non-technical stakeholders!
Chris
dewde says
Yes yes and yes.
You forgot: People will call you when their printers break.
Jason Bradley says
Ohhh, and people have no concept of different Operating Systems, so you need to know all about all of them.
Eric J says
I hate printers especially on windows
Dewaine says
This also sounds like the needs of a pastor.
dewde says
Great observation!
Jeremy says
Totally Agree!
Tom McFarlin says
🙂
Alhadis says
I somehow predicted all three before I opened the page. Though part of me jokingly expected a fourth: healthy disregard for human life. xD
Tom McFarlin says
Ha!