I was lucky, in about 1980 my father had an option to hire another member of staff for his small (6 people) electrical design company, or buy a computer. He bought the computer. It was a Hewlett Packard HP-85 using Basic as an operating system. I started programming on that at age 8, and then on the others we bought after he convinced the main customer to start using them too. In 1984 or so we got our first IBM PC, an XT that sucked compared to the HP, but we persevered with it.
After we added PLC (factory machine) control to the electrical design, I quit school at 14 to code full time, DBase 3, VBasic scada systems and PLC program, which is similiar enough in some ways to Assembler that I moved to some PC assembler stuff. After that, its all the same regardless of language or machine, just get the book to learn the nuances.
I was lucky because by about 1992 everyone wanted coders but there were few about with over 10 years experience, so wages were high. These days I quit coding, burned out on it. Instead of cut holes in brass :)
A good knowledge of coding is a definite asset even in this world overpopulated by computer geeks. Get a language down solid and you should find learning another is pretty easy. I would say learning something to a high depth, and having continual reasons to learn is more important than which language. The thing I saw that kills people learning to code is them sitting in front of a computer with no reason to write something. Whatever interests you, make sure you have the drive and enjoyment to make whatever it is (programs, apps, websites, etc) to as high a standard as possible. Like CodyEatsWorld, I look at his work and see a guy that pushes himself to make what he produces as sharp as possible. Have a reason to code every day and you can't help but get good in time.
You can focus on visual stuff, file and data handling, maths stuff, core or operating system stuff, networking, hardware device control, Object oriented stuff, or a bucket of other areas, but a good working knowledge of all those things will help immensely. Once you know the core to a good level, there isn't an incredible difference between running database queries for oil rig design, running telemetry systems for formula 1 teams, controlling robots to make car engines, making pet food, writing quests for MMOs, or making animated graphics. (yes I did all these things at some point :))
Good luck with it :)
I think maybe that is my problem, whenever I sit at my computer and think of stuff I would like to create I just draw a blank. I feel like I'm missing a creative spark
I think maybe that is my problem, whenever I sit at my computer and think of stuff I would like to create I just draw a blank. I feel like I'm missing a creative spark
I would think there is something for most people somewhere in coding, especially with your interests in computers overall. Its a bit like learning to play an instrument. I know people that failed to get into playing because they just sat learning chords or taking lessons to play pieces of music they wouldn't play even on a hi fi if they had the choice. But teach them how to play 2 minutes of Pink Floyd's Money and they have the reassurance that its something they want to do. (yes, I know these days noone wants to play Floyd, im old :P) Of course once they have 10 songs down, then they want to learn chords or take lessons. But at least by then they got hooked.
I used to do stupid stuff like write visual basic versions of old screen savers, just to work out how the maths and drawing worked. Or emulate menu screens of popular programs (this advanced into writing trojan horse programs to steal passwords. man that was a near arrest :D ) Sometimes I knew guys who would try and do impossible things like try and get their PC to play decathlon on the playstation for them (top L1/R1 switches on a Playstation 1 were volt-free contacts, which allowed some obscure coding ideas). Some of the early programs I wrote were rubbish to guess a number, or draw a house. It sounds crap now but it was just to make a computer achieve something. Once I got my version of Mystify screensaver done, I put function key controls to swap them from squares to many-sided shapes, then I tried to get 20 going at once to see just how much crap my PC could do at the time.
It helps if you have a need for a program that doesn't quite exist (harder now that everything has 200 free apps for). Perhaps you like overclocking hardware and find fan controller software is all a bit generic or just plain crap to use. Or maybe an MP3 tagging program sucks because you can't get it to tag all your music in the format your car can read. Find a task you might use a standard program for and think how you could maybe write a version that works more for you. Or even write some app that makes farting sounds. Hell, if you have a favourite app, try rewriting it with your own colour scheme, or to con your mates when they try use it. I would suggest thinking of a usable thing you might want, rather than programming for its own sake.
I started sometime around age 12 - 6 years ago back in 7th grade. All self taught as a hobby.
I played the game Battlefield 2, and got into the "BF2 sandbox" mod. Started with skinning, then game file edits (ammo, speed, etc), but eventually I moved on to actual plugins (which were all python). I didn't know anything and learned from talking to others. I still remember asking someone on Xfire what "!=" meant.
My mom got me a python game programming book for christmas and I made pong, astroids, and stuff like that. Then I moved onto stand alone programs, and dabbled in C. Moving into high school I found java which I really enjoyed and ended up making a few hundred dollars with an app my sophmore year. Hung out in IRC and learned how to rebuild kernels, which lead me to running Linux in a VM. Then I wanted to compile android from source but it was slow and I switched to dual booting. Now I have been running linux (Arch Linux) for a few years as my main OS. I'v contributed stuff to Cyanogenmod and other android roms, helped build a dual boot kernel, etc. In this time I have had countless little abandoned projects that I started for fun but then dropped to move onto something else. I even messed with z80 asm to try building a native app (not a TI-Basic program) for my school TI-84 calculator .
This summer before I start college I have been working with a small dude's startup (just him, me, and a friend + some marketing relationships). Picked up PHP and in the first day or two and have been working on stuff since then - it also involves MySQL and javascript. I'll be skipping the first few programming courses when I start my comp sci education and already have stuff for my resume. Hope things work out well as time goes on.
"Learning" PHP or another new language isn't difficult for me. Once you get all the concepts - scope, functions, flow control, OOP (inheritance, interfaces, ...), etc then it's just syntax , the built in classes/functions (which is all online), and some random language specifics. Stackoverflow helps :P
I think maybe that is my problem, whenever I sit at my computer and think of stuff I would like to create I just draw a blank. I feel like I'm missing a creative spark
I think maybe that is my problem, whenever I sit at my computer and think of stuff I would like to create I just draw a blank. I feel like I'm missing a creative spark
This is precisely my issue; I have no personal glaring need to solve a problem by coding something. Kind of need a specific push or request to get me going.
I used to do stupid stuff like write visual basic versions of old screen savers, just to work out how the maths and drawing worked. Or emulate menu screens of popular programs (this advanced into writing trojan horse programs to steal passwords. man that was a near arrest :D ) Sometimes I knew guys who would try and do impossible things like try and get their PC to play decathlon on the playstation for them (top L1/R1 switches on a Playstation 1 were volt-free contacts, which allowed some obscure coding ideas). Some of the early programs I wrote were rubbish to guess a number, or draw a house. It sounds crap now but it was just to make a computer achieve something. Once I got my version of Mystify screensaver done, I put function key controls to swap them from squares to many-sided shapes, then I tried to get 20 going at once to see just how much crap my PC could do at the time.
I think maybe that is my problem, whenever I sit at my computer and think of stuff I would like to create I just draw a blank. I feel like I'm missing a creative spark
This is precisely my issue; I have no personal glaring need to solve a problem by coding something. Kind of need a specific push or request to get me going.
Speaking of Arch I dual booted that on my computer for quite a while and that's how I learned most of the linux I know. Eventually I broke it and couldn't manage to fix it and since then I haven't gone back to it. Maybe I should get Arch running on this computer again and brush up on my linux terminal.
My dad bought an Apple IIc and I wanted to make it do stuff. So I learnt to draw with Apple Logo II and Turtle Graphics. It was a great intro to programming and is actually a far more full-featured language than I realised at the time.Svg makes you happy?
Then I progressed to Applesoft Basic, then a little 6502 assembly language, then Pascal and 8086 assembler, C, OpenGL, C++ and other modern frameworks and languages (Java, C#, etc).
I used to do a lot more little hobby projects and games before I started programming for work. Now I hardly ever code for fun and it kind of sucks. I tend to have too many other hobbies to fit in the kind of coding I'd want to do nowadays, so... Maybe when I don't do coding any more for work I'll get back to having fun with it. My primary interest nowadays is still graphics related. I've always been fascinated with creating images with code. It really feels like you're creating something from your imagination and I'm fascinated by how the final image is influenced by the constraints of the language used, the API version, etc. I'm a very visual person, I guess.
Thank you, this is really great advice. I suppose I have to think of something to mess with and stick with it
inb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
inb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
I learned in Scheme, for me it was parens. I'm so goddamned good at matching up parentheses now, it's come in pretty handy.
That actually isn't that much of a problem IMHO, because Scheme syntax is super simple. When I learned it, I basically embedded its REPL in my head. Also, code is usually very modular (short procedures). Advanced editors have been around for quite a while anyway… unless you code on the whiteboard like I sometimes do.inb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
I learned in Scheme, for me it was parens. I'm so goddamned good at matching up parentheses now, it's come in pretty handy.
inb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
I learned in Scheme, for me it was parens. I'm so goddamned good at matching up parentheses now, it's come in pretty handy.
And that is why any modern text editor will highlight the matching paren for you. No more guessing games.
My dad bought an Apple IIc and I wanted to make it do stuff. So I learnt to draw with Apple Logo II and Turtle Graphics. It was a great intro to programming and is actually a far more full-featured language than I realised at the time.Svg makes you happy?
Then I progressed to Applesoft Basic, then a little 6502 assembly language, then Pascal and 8086 assembler, C, OpenGL, C++ and other modern frameworks and languages (Java, C#, etc).
I used to do a lot more little hobby projects and games before I started programming for work. Now I hardly ever code for fun and it kind of sucks. I tend to have too many other hobbies to fit in the kind of coding I'd want to do nowadays, so... Maybe when I don't do coding any more for work I'll get back to having fun with it. My primary interest nowadays is still graphics related. I've always been fascinated with creating images with code. It really feels like you're creating something from your imagination and I'm fascinated by how the final image is influenced by the constraints of the language used, the API version, etc. I'm a very visual person, I guess.
I secretly want your dual keypads. You must feel like a ninja with those things.inb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
I learned in Scheme, for me it was parens. I'm so goddamned good at matching up parentheses now, it's come in pretty handy.
And that is why any modern text editor will highlight the matching paren for you. No more guessing games.
And before we had these or if you're using one that doesn't, good layout practices make it trivial. Such as always putting an open brace on a new line, using proper indentation and ending any statement with a ";" when you create it. It's not hard. A good IDE or compiler will let you know these kind of things easily, too.My dad bought an Apple IIc and I wanted to make it do stuff. So I learnt to draw with Apple Logo II and Turtle Graphics. It was a great intro to programming and is actually a far more full-featured language than I realised at the time.Svg makes you happy?
Then I progressed to Applesoft Basic, then a little 6502 assembly language, then Pascal and 8086 assembler, C, OpenGL, C++ and other modern frameworks and languages (Java, C#, etc).
I used to do a lot more little hobby projects and games before I started programming for work. Now I hardly ever code for fun and it kind of sucks. I tend to have too many other hobbies to fit in the kind of coding I'd want to do nowadays, so... Maybe when I don't do coding any more for work I'll get back to having fun with it. My primary interest nowadays is still graphics related. I've always been fascinated with creating images with code. It really feels like you're creating something from your imagination and I'm fascinated by how the final image is influenced by the constraints of the language used, the API version, etc. I'm a very visual person, I guess.
Um... it depends. I prefer raster for 2D, easier to render. Unless I'm working in OpenGL, then converting SVG to polygons is nice for scaling.
21st century offers you rainbow parenthesesinb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
I learned in Scheme, for me it was parens. I'm so goddamned good at matching up parentheses now, it's come in pretty handy.
21st century offers you rainbow parenthesesinb4 the usual flamewar about the brain damage caused by Basic, Pascal, PHP, Java or nearly any other particular programming language. ^_^
There's something about it though. I spent too much time frustrated looking for missing/extra dots or semicolons in my Pascal code.
I learned in Scheme, for me it was parens. I'm so goddamned good at matching up parentheses now, it's come in pretty handy.Show Image(http://oi41.tinypic.com/f2rons.jpg)
and color-boxShow Image(http://www.foldr.org/~michaelw/emacs/color-box.png)
The rainbows are pretty, but the boxes would distract me.
I've used editors that flash the cursor back to the open parenthesis when I type the close parenthesis, only for like 1/4 second, but it is enough to distract and disorient me, because the cursor is not where it is supposed to be i.e. immediately after the character I just typed.
I no longer use such editors.
I haven't had an unbalanced parentheses error in years.
I got started about 3 1/2 years ago*slow clapping*
I haven't had an unbalanced parentheses error in years.I got started about 3 1/2 years ago*slow clapping*
And remember, kids, you should never call HTML a programming language.