Wednesday, February 27, 2008

The Lofty Goals of this Blog

First off, let me express that the intended audience for this Blog is people who are familiar with and interested in programming languages and software development technologies. Now, on to the meat of the post...

College is great. Every day, students have the ability to meet new and intelligent people, learn new and cutting-edge technology, and exchange ideas with well-published professors. All this interaction, studying, and learning stimulates the mind and keeps students full of motivation and creativity.

So what happens to you when you graduate and launch your career into the real world? Will you use the skills and techniques you learned in school? No. It's likely that you will not use a large part, if not a majority, of the vast breadth of your academic knowledge. Instead, you will most likely use your newfound analytical skills to learn several specialized tasks at your workplace. Eventually, you will find your mind becoming bored with the repeated activities you perform on a daily basis.

Thus, the purpose of this blog is:
  • to exercise my own analytical and learning ability
  • to expose myself to technologies I do not regularly use
  • to hone my expertise on nuances and 'gotchas' of said technologies
  • to share my findings, lessons learned, and inspirations with you
The initial technologies I plan on addressing in this blog are as follows:
  • HTML - Yes, I already know HTML. Am I an expert? No. It's time for a review.
  • CSS - Let's learn how to do this the right way.
  • Ajax - What exactly does it mean, and how can it make my blog better?
  • JavaScript - Let's dig into the features, syntax, and capabilities
After I have finished addressing these technologies, I will use the knowledge I acquired to enhance and add features to this blog. Nifty, eh? Next, I will switch to programming languages I currently do not know or do not actively use, namely:
  • Python - I've heard wonderful things about this language. I'd like to explore how powerful it really is, then write a few example applications in it.
  • Ruby - Does it annoy you when you see buzz-terms flying in your face and you have no idea what they are? Yeah, me too.
  • Perl - It's been around for a while, looks ugly as hell, but is extremely powerful, especially at searching text.
  • many more...i.e. awk, bash, MATLAB, LabView, PHP, ASP, Flash, C#, Cold Fusion, Fortran, Adobe AIR, and even MS-DOS Batch files. If there is a particular technology you would like me to address first, please let me know!
In general, when exploring a given technology or programming language, I will try to provide information with regards to:
  • Development environments (Windows and Linux)
  • Basic syntax
  • Gotchas (i.e. garbage collection in Java, pointers and references in C++, function name mangling in DLL's)
  • How to achieve functionality (i.e. network communication, multi-threading with thread-safe shared data, user input, GUI design, file I/O, external function calls)
  • Unique and exciting features of each language (i.e. the 'Reflection' class in C#)
I personally cannot wait to start diving into programming languages, but will restrain myself until I learn how to properly represent content in a web browser without using a template or someone else's HTML/CSS.

In closing, I'd like to welcome you to the start of a new journey that will help you and I 'kick our brains' to help foster creativity, excitement, and inspiration, and avoid the plague of complacency and doldrums.

4 comments:

Dan Wilson said...

As someone who knows your awesome technical skills, I am pretty stoked you are blogging now!

Congrats on the new blog!

Dan Wilson

theROCK said...

is this you tom?

theROCK said...

nevermind, i just read your stats. hey, i know exactly what you mean about after school and your brain basically falling asleep. One thing I would like to look into is linux type apps. I have no programming experience, but I am buying the Nokia N800 and it is open source linux, so I would like to know how to start messing with the thing in more detail. long time no talk or game, so hope all is going well.

Tommy said...

@dan -- Thanks! I look forward to gaining more insight from you as I traverse Flash, AIR, and other technologies. Watch out for bears!

@cisco -- Are you on TF2? If not, go buy it. Now. I play a mean spy. The N800 looks like a sweet little gadget, judging from what I read on Wikipedia. I know a bit about Linux. I've recompiled kernels, built software for it, but I won't say I'm a total expert. There's always more to learn. I suggest you start off by installing Ubuntu on a spare partition. Being that Ubuntu is based on Debian (just as your N800 is), this should familiarize you with how the system works. Just remember... GUI's are nice, but the command line is invaluable.