All posts tagged windows

I answer that question fairly often. There used to be very few choices. When I was about fourteen, my parents bought me a Sinclair ZX81 with a whopping 1kb of memory. After you turned it on, a prompt appeared, then, nothing… Pretty disappointing at first. You had to learn the Basic programming language to get it to do anything. I’ll be forever grateful to them for spending the equivalent of a thousand dollars on technology that at the time, was just a novelty. Today I make a living sitting in coffee shops sipping frappuccinos and writing code; better than digging trenches…

We have many other choices these days, and deciding which language to learn first can be a difficult decision. I will assume here that your goal is to learn skills you can market to hopefully make a decent living. Otherwise, go ahead and learn anything you’d like.

Most current languages are based on C. There is a lot of hoopla about Object Oriented Programming, and you certainly will need to know OOP, but as a first language, C can’t be beaten. C++ and Objective C are both subsets of C, and if you learn both, you can program on any platform there is, Windows, Linux, Mac, and iOS. Java is also based on C, and platform independent. For web programming, PHP uses a lot of C-like syntax. You simply can’t go wrong with C. Sure, it can be a pain in the ass. Pointers and memory management are, at first, rather annoying. It does however ingrain in you good programming practices an you will appreciate the higher level languages when you get to that point.

So, how do you learn C? Sams Publishing has the best programming books in the business. I suggest “Teach Yourself C in 21 Days,” by Jones Aitken. It provides you with a timeline to follow, reading and working on one chapter per day. Sure, you won’t be selling software after 21 days, but you will have a solid base upon which to build.

Where to go from there? It depends on whether you plan on developing for Windows or Apple OSX. For Windows, C++ is the natural progression. Java is also a good choice, and will allow you to code for Android devices. Objective C is used on all Apple products, Macs and the iPhone, iPod and iPad family of devices. If it was only for Macs, I wouldn’t bother. Not that I have anything against Macs. I just bought a Mac Mini, and OSX is superior to both Linux and Windows (which for the later isn’t very hard). Programming for Linux, well, there isn’t much money there, as you would be competing with hordes of programmers working for free.

I would definitely suggest checking out C++, Objective C and Java for your Post-C learning adventure. Sams Publishing has great books in their 21-days or 24-hours series to learn them. For Objective C, see the O’Reilly book: “Programming in Objective-C” by Stephen G. Kochan.

There are three languages I would like to mention on top of these choices. They are, in my opinion, excellent and worth a good look.

The first one is Python, and excellent platform independent scripting language which can be used to write command line tools, and even full fledged graphical applications, if you ever wanted to take it that far. I use Python almost daily to write database management programs. Perl used to be my first choice for such tasks, but Python is more organized, and has many modules available to do practically anything. And excellent book to learn Python is “Learning Python” by Mark Lutz, from O’Reilly.

A note on O’Reilly books. In my opinion they are of two kinds: The first is great books, even for the beginner, with clear explanations and easy to follow. The second is incomprehensible techno babble that is only readable by autistic savants. There is no middle ground. So, when you buy a book from them, make sure it falls in the first category.

The second is Borland (now Embarcadero) Delphi. The second language I learned after Basic was Turbo Pascal. It is a very good, fast and simple compiled language. For some reason I fail to understand, it has fallen out of favor; same goes for Delphi, which uses Pascal at it’s core. However, Embarcadero released Delphi XE2, which allows you to program for Windows, Mac and iOS at the same time. There is no faster Rapid Application Development tool anywhere, to my knowledge. I have a handful of shareware programs written in Delphi, and plan to use it again, when I can afford the $900 Professional version.

At last, for the web, PHP is the right choice. You can use PHP with Ajax, Javascript and of course HTML. PHP is great to connect to databases like MySQL. I use PHP daily for my customers and myself. Note that Ajax and HTML are not programming languages.

I hope you will find my suggestions useful. Have fun coding and don’t overdose on coffee!

I got my first personal computer when I was 14, it was a ZX-81, with 1Kb of RAM. Yes, this is not a typo, 1Kb. There was no DOS at the time, certainly no PCs or Windows. When 3.1 came out, I was a bit disappointed, after seeing the Mac interface first, but adopted it nevertheless. More than two decades later, I was using XP for my desktop, and like everyone else, was pretty happy about it.

Then, last April, I decided to buy a new laptop. To my dismay, none were available with XP, so I got a Getaway with the new Vista on it. Problems started right away when I plugged-in my USB flash drive; instant crash! “Oh Well” I thought, that will probably be fixed in an update soon. Then, many programs I used simply did not run… The constant nagging of the OS got to me sometimes. I had all the pretty memory-consuming bells and whistles off, but the system would still freeze and be awfully slow, with 1Gb of RAM installed, and a dual-core Turion64 CPU; makes no sense at all…

The last straw was a regular disk cleanup. It was a cleanup all-right, my whole hard drive was wiped out! Vista erased itself, in a last moment of clarity, which turned out later as being the best thing it ever did. I packed my Vista CD and shipped it back to Microsoft to get a refund (wait until you find out how big a check they sent me!). In the meantime, I was trying to get an evaluation copy of X64 to run on my machine. Why not install a 64bit OS on a 64bit computer, right? Don’t do it! Not yet. Getting drivers was a nightmare, my SD card reader didn’t work, half of my USB ports didn’t work, and most of my software still didn’t work.

Just got a package from Microsoft! I thought it was maybe a Windows XP CD or a refund for Vista. I open the envelope, YES! There is a check in there: $1.39 (I double checked to make sure it wasn’t $139). They rob me, and now they insult me! I grabbed the phone, and after being on hold for a while and redirected a few times, I finally was able to explain my troubles, and got… Nothing. My software is “OEM” whatever the f**k that means, why should I care? The system says “Microsoft Vista,” not “Gateway Vista” or “Best Buy Vista.”

So, I find myself installing Ubuntu. The installation works fine, I answer a few questions, and what seems a fairly short time later, I am asked to reboot (note that you almost never have to reboot Linux after installing software). Startup sound! Sound works, I’m surprised I didn’t have to tinker with it. Holly Sh*t, I’m online! Ubuntu has found my wireless card all by itself. I don’t want to push my luck too far, but I’m about to try something I can’t dream will work (After trying on FreeBSD a few times and giving up), I plug in my USB printer… A few anxious seconds pass… Found it! ML1740, the test page spits out, incredible. I’m on a roll. I grab my digital camera, pop the SD card out and push it in the laptop card reader. Seconds later I am looking at my latest jam video, I don’t sound that great on the guitar, but it works. My key-chain follows, which is a USB flash drive, pop! On the screen. My head is spinning. This Ubuntu stuff works better than anything I’ve tried before. I am frantically trying to find something to plug-in, just to see if it works. Ah! My Ipod was trying to hide, pop! An Ipod icon appears on the screen. I need to go to the bathroom, but my Visor Edge PDA is laying on my night table. I install the cradle, push the Sync button, it synchronizes with my Evolution email client, all my Palm stuff is backed-up! All of this happened without having to install a single driver, tinker with any settings at all. I’m not saying you’ll never have to, but the Ubuntu forums are great for help, there is always someone with a ready answer.

I can say to Microsoft now, you have lost a customer. You are losing many because you didn’t care. Vista is in my opinion the worst operating system I have seen in 26 years of computing. This week I had to buy a new mouse for my desktop (It runs Ubuntu as well now), I went out of my way to buy a non-Microsoft mouse. I will never buy another Microsoft product. Linux is finally ready for the desktop, for home use and businesses.

Crappy Windows OS: $200. Ubuntu Linux: Priceless, literally!