Coding Tools to Make Life Easier

I was working on something for a client when The Invisible Developer walked into my office, looked over my shoulder at the code and said,

“So, you’re a PHP programmer now?”

I answered,

“I’m a whatever-language-we-happen-to-need-at-the-moment programmer.”

A year and a half ago, I took a look at Codecademy and was underwhelmed. It’s gotten mixed reviews and if you find it awesome, good for you.

One of the drawbacks I saw is that it didn’t reflect  the way I think most software is actually written.

A big complaint even people who liked Codecademy had was about the console. When I was an undergraduate taking my first couple of programming classes I did nice little things like their program to calculate taxi cab fares, or tips or whatever it was.

Now I make things that people actually use and it’s a lot more complicated. In doing that, there are some tools that make my life so much easier. There are three broad types of extraordinarily useful tools.

DE-BUGGING

XAMPP – if you are going to be doing anything with PHP and MySQL, take the time to download and install this. It’s free.  At first, I thought it was wasted effort because why do I want to go to the trouble to create an extra copy of the same SQL tables on my desktop. At first, I was an idiot. Here’s the deal, you can have your SQL database on your server, upload your files to run them and test them, or you can have it on your desktop and test it locally. Of course I don’t have the entire database on my desktop, just tables with the same columns and some fake data. It’s much, much quicker and easier to find errors than going through the whole uploading the file, finding an error, fixing it, uploading it again. Just install the damn thing and quit whining. I have had zero problems, zero complaints and cannot believe I didn’t do this on day one.

Some type of Integrated Development Environment (IDE), I use Webstorms, but there are plenty of others out there. Any IDE is going to include a source code editor,debugger and most have intelli-sense, which will try to automatically sense what you are planning to type and offer to complete it for you. Kind of like your iPhone but it works much better since there is a much smaller subset of words. It will identify if you have left off a closing bracket, parentheses, semi-colon, etc., let you know if you are deleting a file referenced in another file and stuff like that.

 Developer tools – just about any browser will come with a set. I like Safari’s the best but I use Firefox almost as often, and sometimes Chrome. These usually include an error console that will show you any errors, a view to look at the source code including scripts being called by your web page.

You might notice what all of these have in common are de-bugging. If you’re making anything that’s more than a bit complex, you’re going to spend a great deal of your time de-bugging, probably a lot more time than you spend writing code.

I think I’m pretty typical. Normally, I write a first draft that doesn’t run. Then, I swear and find whatever bugs are there. Depending on how complicated the project is, this may take a while during which progress is defined as finding bugs further down in the code. My second draft runs but is not very elegant. It could be more secure, more efficient, use macros, whatever, but it runs. I often post my second draft on my blog where nice readers who post comments and suggestions (which I DO appreciate and I no doubt don’t say THANK YOU enough) probably wonder how I stay employed writing stuff like this. My third draft, if I have time and there is still money in the budget, also runs but is easier to maintain or interpret. Then, I got back to step one.

Funny thing, I wrote a book on matwork for judo and mixed martial arts which is selling amazingly well and I followed the same model. The first draft sucked, the second did not suck as much and after several iterations and rounds of editing, I’m quite proud of how it turned out.

CODE LIBRARIES

The other end of the spectrum from people trying to be the next Facebook / Google /Apple / Microsoft are people giving away their code for free. There are some awesome code libraries for javascript, like jquery and the jquery user interface, which allow you to do common needs like animation (hide something, show it, move it) and event handling (when the mouse is up, down,  a key clicked).

In between these two extreme are code libraries like impact.js , which I use for 2-D game development, that are not free but are well worth the price. Impact costs $99 and does so much of the game development for you – you can easily create levels, entities (players and their ‘enemies) and much more.

There are a couple of others on my list to download and check out  the second I have the time. I’ll let you know how that works out.

ASSETS/ WIDGETS etc

These are kind of like code libraries in that they are parts of your project pre-written for you. Whether it is downloading sprite sheets, Dreamweaver snippets, drop-down menus or reading papers in SAS Global Forum proceedings and copying macros, I have no shame about using other people’s code. The Internet is full of wonderful, generous smart people who make things and put them up for free just to share, show off, or get business.

They are also bits (both literally and figuratively) that you can buy for not a lot of money. I don’t have that silly idea that everything on the Internet can be free. If I can buy something for $30 and it would cost me more than $30 to create it myself, I do. Yes, maybe I could code it myself. I could also clean the office myself but I pay someone to do it.

It’s all about efficiency.

=================================================

Learn math. Save lives. Learn culture. Kill animals. (Relax, it’s a game.)

7 Generation Games Logo with feathers

local_offerevent_note July 2, 2013

account_box AnnMaria De Mars

3 thoughts on “Coding Tools to Make Life Easier”

  • A few suggestions (you might know them already, but if you don’t, Christmas is early this year):

    Stackoverflow.com
    Question and answer website on programming. You can ask just about any question on any programming language and usually get a decent answer within minutes (assuming the question isn’t already answered and it often is).

    programming-motherfucker.com
    It’s a neat collection of free programming books on many languages. No training wheels, straight to the deep end. As you can probably tell from the url, there is a bit of an attitude but I have the feeling you won’t mind.

    git and tortoise git
    (http://code.google.com/p/tortoisegit/)
    Free source control and pretty much the best one around. TortoiseGit is a gui for Git (makes it pretty darn easy to use. If you aren’t using source control or don’t know what source control is, put it at the top of your “to learn” list – In short, source control keeps track of the history of your code, serves as a back-up, and allows you to see exactly what happened when and compare different versions of the code, see who did what (watch https://www.youtube.com/watch?v=4XpnKHJAok8 for a presentation by Linus as to why GIT is better than sliced bread – 1h long and entertaining).

    Bug tracking/project management software
    I use Fogbugz (http://www.fogcreek.com/fogbugz) makes a world of difference, even for a team of one. Video is totally worth watching.
    Trello.com by the same company is a great way to roadmap a project (free).

    (Disclaimer: 3 of these products are from the same company, but I am not affiliated with them in any way other than as an user)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.