Why Do You Love Programming?
thecodist.com
thecodist.com
I love programming because there is no limit to what I can dream up and realize.
At the same time I hate it because of the terribly convoluted way we have to take in order to achieve a certain goal. In this sense I feel that computing has actually gone backwards compared to where it was in the 80's on simple 8 bit micros.
On a simple 6502 machine it was possible to:
- boot the thing - type in a small program at the prompt - observe the result (graphical or textual)
In under a minute. No GUI toolkits, no web interfaces, 300 call APIs and hundreds of megabytes of memory dedicated to the operating system.
If there is anything I would like to change about how computers work I'd like to get away from monolithic operating systems and environments and move towards a more 'lego' like computing architecture.
That would make the 'hate' go out of the love/hate relationship in a heartbeat or two.
I have a really strong feeling that computing is on a dead end path, that at some point we are going to completely ditch what we've got and replace it by something much better. We're still stuck in the 70's for the most part (and yes, that includes the latest hot new little language that is only new because its creators have no sense of history).
I know this sounds like the rant of an old guy, but I really think there is a very bright future hidden in all this and I can't wait to get there.
Oh, I'm sure my 15-year-old self could picked up Python scripting or the like, but C++? Nunh-uh. No way. I'm always impressed when I see some kid teaching him/herself advanced programming languages. Even with the Internet at your disposal, becoming a serious programmer these days is hard for anyone with a sub-genius IQ.
The low barrier to entry was definitely a big factor in hanging in there, getting some results and learning from that.
You can still learn programming today easily. Command lines are still available.
I don't think it'd be hard to learn C++ if you knew C and Java (or a scripting language with OO).
Courses that start programming with C++ seems to teach a subset first ("a better C").
Edit: Disclaimer: A few years after learning C++, I skipped all the low level stuff and almost only do scripting languages. I might not be C++'s largest fan. :-)
How can't you love this?
Non programmers, on the other hand, tend to identify the computer with the software already available and known by them.
Programming also means (at least ideally) being able to talk directly with the computer. It means being able to perform boring and time consuming tasks in a fraction of the time.
Non-programmer users get frustrated so easily with computers because they're in a foreign land and they don't know the language. They can go to the station and take a bus if they know which one would bring them wherever they need to go. But they can't ask for directions.
Compare, for instance, the expressiveness of the unix shell with GUIs when you want to perform a specific task on a particular subset of files/data.
That's why I think that programming should be something available to (and acknowledged by) every user.
When I was a student, I heard even law students and economists make more or less tha same arguments about their subjects.
That is, there are collections of rules you could handle like games and/or machines, pulling different strings and adjusting to make them do what you want.
(Chemistry and physics are other obvious subjects.)
Of course, the non-programmers' wimpy systems aren't real Turing machines... :-)
I should have noted that myself. During the IT death, I did some bio-/organic chemistry courses for fun. It seemed so interesting to modify prokaryotes. Like the people programming logical circuits with the game of Life, but with proteins.
I got ill for a while and had to stop studying, otherwise I might be working with bioinformatics now. On the other hand, biochemical lab work was boring (organic chemistry lab was incredibly fun.)
"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures."
* because it enables the incremental building of poetic, elegant architectures that involve language, relationships and mathematics (much like music)
* because i can do it any time, anywhere, on a device i can carry in a small shoulder bag
* because within it, i can spend a lifetime learning new techniques, strategies and tool-sets
(well, computing resources and time, I suppose, but those limits seem much less constricting than the previously mentioned ones)
I would like to do more things with physical computing, for instance. But I always end up concentrating on software only projects.
I've always loved creating stuff, and programming gives me an unbelievable set of resources.
Thank you, codist! That is the best description of myself that I have ever read. Whenever anyone asks my biggest strength, I tell them that the answer is always "yes". Whenever they ask my biggest weakness, I tell them that I don't want to work on something that someone else can do.
"Oh well, I am beyond getting the usual jobs via the usual methods, since no one hires a 51 years old programmer with up to date skills and 28 years experience being a passionate programmer who still loves to program."
Wrong. I'm older that you, codist, and I'm never out of work. It's got nothing to do with age, or skills, or politics, or dollars. It has everything to do with results. I'm currently helping a customer's customer solve a 9 figure business problem with software that none of them ever even imagined, because we just kept digging until we came up with it. Once you deliver something like that, people like them don't let people like us get away.
I always feel uncomfortable when I have to write a lot of code without being able to verify if it works correctly right after I wrote it.
Ugh.
I really want to like this post, but a typo in the FIRST sentence is such a turn-off.
Language and - by extension - writing are a means of transferring information from one person to another. It is the meaning of the information that matters, not the format in which it comes to you. So if the same piece had been spoken to you (which is just a switch of medium) you would have loved it.
So, just like the first braindead compiler you refused to 'compile' (understand) a perfectly good piece of information because of a syntactical issue. Compilers are not programmed to deal with this sort of thing (it has been tried, see the fiasco of the error correcting pascal compiler) but humans are more flexible than that. There is no need for you to balk at the first error in grammar or spelling.
Plenty of people have a very valid story to tell, even if their delivery may not be 100% on the mark. As a non-native English speaker/writer I'm often quite shocked at the level of spelling and grammar displayed by 'the natives'. But I try hard to not let that stand in the way of understanding the message.
> if the same piece had been spoken to you ... you would have loved it.
Not if the person had a really, really annoying voice, or if it were littered with grammatical differences from my norm, or if it were so loud it were painful, etc.
Delivery matters. If you force me to get past the delivery to find the message, you are saying that my reactions are less important than your thoughts. If you care about your audience, you will take the time and effort to remove obstacles and let the message be unhindered.
How many times have you visited a web site, only to leave fairly promptly because you can't make instant sense of it? This is the web/visual equivalent. We are repeatedly exhorted to make the design simply, clean, clear, and attractive.
Checking your spelling and grammar are the authorial equivalent.
I frequently write in a non-native language, and I know that I need to check these things almost fanatically. Not to do so is to show a lack of respect for my audience, and to ignore the wisdom of ages ago:
I assumed that the speaker would have been reasonably proficient but a horrible writer, of course there are other variations, and I'm acutely allergic to some voices so I really should have given it more thought.
In the age of spell checkers there is hardly any reason to have simple typos in your writings anyway, but that is another matter.
Get over it. For 3 reasons...
1. hn is international. There's a decent chance that English is not OP's primary language.
2. To meny strumbos I work with knitpick on grammer and speling becuz they aren't capabull of evalu8ting the kontent. I don't ever want too be like them. I bet u don't either.
3. Grow a thicker skin in order to learn more. To me, "hacking" and "turn-off" seem like they oughta be mutually exclusive.
when i create a program that can communicate each other, i just realize that the limit in programming is infinite. it's feel like a magic in your hand. a wizard of binary.
input a,b,c
x = (-b+sqrt(b^2-4*a*c))/(2*a)
output x
It feels sooo good!Solving problems, finding solutions, it is an adrenaline rush, an addiction, like playing god with bits and creating universes inside computers.
That's how it feels.