Imagine you are an astronaut going up to orbit. As you fall towards the horizon, your frame of reference shifts. No longer are you bound to the Earth, constantly falling down, as now you're falling forward faster than the curvature of the Earth, destined to circle the globe until you slow down and re intercept the horizon. Somehow, the planet you're orbiting seems a fair bit smaller, and when you look up, you no longer see a flat image of the sky, but now a three dimensional landscape.
When you write your first program, and a "hello world" appears on your terminal, it's not unlike lifting off on a spaceship. Underneath your simple control panel inputs, complex machines and generations of engineering are backing up your intention.
A common first realization when learning programming is understanding variables. Even an astronaut had to learn that the Earth was round. Learning that you can store numbers and words (represented as a collection of numbers) somewhere on the computer is necessary to understand how to do math on those numbers. Knowing just how to print and store variables, and how to do basic arithmetic on them is enough to make a calculator program.
When programming on any particularly interesting problem, it's like watching the horizon fall out from under you. Often times, your thoughts can escape constraints of language, and images and formulas start becoming the framework of your thoughts. Shortly after, algorithms start popping up everywhere in your sight. How a bee decides which flower to gather nectar from. How a tree grows and branches, and when it decides to make a leaf instead of another branch. Where water runs runs into valleys when it falls on top of a hill or mountain.
A computer can be used to model almost any natural event. A good enough model can be used to predict outcomes for complicated interactions. A clever programmer can come up with a way to combine their own models with those of the generations of scientists before them, creating complex systems with simple enough interfaces.
This is the final lesson that programming teaches you. Once you've made it past orbit, and are now looking beyond the horizon to the stars, it's like experiencing a different world. One with endless depths to explore, but a simple interface to get you there.
I tried many times, but I always end up just hating it, which is unfortunate because knowing it would be very helpful in the field of work I want to go into.
I'm taking an introduction to computer science course this semester as part of my first experience with programming.
It's so cool! We're learning C++ in this class and have just gone over storing and defining variables. Basically, all we've gone over so far was cout, cin, and variables along with some basic syntax. I mean, it's fun so far because I've always been a little interested in programming. I hope it stays that way as I get into harder subjects and actually learning to code things (like the professor said we'd be programming simple games over the semester like tic-tac-toe and bingo etc).
Programming is the worst when you're debugging for 8 hours but then when u find that stupid fucking bug and your program compiles and runs correctly it's the best feeling besides orgasm
I find programming can be immensly rewarding and fun, but also terribly boring and frustrating, depending on what you're doing.
Working with code and frameworks your comfortable with, creating something new, is massive fun. Debugging and updating legacy applications you're not too comfortable with can be terrible though. Debugging for hours looking for problems and then it turns out that the problem is actually with the framework, is some of the worst things you can do. (A personal example was when I was trying to call a java web service from .net, getting ridiculous errors from super simple code, only to eventually find out that .NET and Java disagrees on the HTTP 1.1 interface, frustrated me massively.)
On January 16 2014 15:28 cam connor wrote: Programming is the worst when you're debugging for 8 hours but then when u find that stupid fucking bug and your program compiles and runs correctly it's the best feeling besides orgasm
this happened to me today. i tried to fix a bug for 5 hours, i changed one fucking line from the code i started with and it worked.
I'm a finishing carpenter, and most of what I do these days is problem solving, and I LOVE problem solving.
Coding, to me, feels like problem solving, except I'm not allowed to solve the problem directly, I have to command my Russian friend to do it. In his native tongue. Which I don't speak.
At least when you're learning to draw you don't have a full understanding of how bad you actually are. Partly in thanks to things not constantly spouting SYNTAX ERROR ON LINE 86 at you.
Coding, to me, feels like problem solving, except I'm not allowed to solve the problem directly, I have to command my Russian friend to do it. In his native tongue. Which I don't speak.
A very apt description and well put. Although as someone who just got an electric drill for christmas and wants to try my hand at some amature carpentry I image there will be a whole world of terms that seem like gibberish to me.
Once you speak to your Russian friend enough you will slowly learn a bit more Russian, although the first words you learn to speak may or may not be swear words.
I think learning from the ground up is really the way to go. In highschool I learned VB but it wasn't till later that I touched on C and especially assembly languages like ARM and mips that I really had any clue what I was doing. This is not in fashion however (There are some good reasons though) and you get people like Epishade up there starting off with C++. To me that just seems like reading a book on how to speak Russian by opening it up halfway through and expecting to pick it up from there.