Monday, July 20, 2015

How To Get That Job, Part 1

Okay, so you've gone through school. You've learned about coding and databases and how best to build a binary search tree. You know the proper way to use interfaces and even how to build your own Operating System (why you'd want to do such a thing is something else to ponder altogether). In other words, you've got the skills.

Okay, so you consider yourself a real coder. You see your real-life friends spending a lot of time at the clubs or participating in some outdoor activity, whereas you are quite content spending your nights in front of your computer, honing your skills and becoming the best developer you can be.

You've got the degree. You've got the skills. Now, for the job.

It's no secret that the techie market is one of the hottest job markets out there. As long as you're in at least a decent sized town, chances are good there are going to be jobs available. Unfortunately, the world has caught on and there are more techies than ever before, looking for the same jobs you are. They have the same degree you do (or better!). They have skills, they have talent... and they want the job YOU want. So how do you beat them?

In this series of blog posts I'd like to give some pointers on how to land that perfect tech job. This is primarily for fellow programmers, but most can be useful for other techie jobs. Let's start with that most important first step - the resume!


First up: The Resume
I'm sure you've been told before how important it is to make a good first impression. Most of the jobs to which you apply will have multiple resumes that the employer will be sifting through. The key is to not only show off your skills and training, but to market yourself. It is unfortunately a fact that, in the techie world, the degree takes a back seat to experience. When your job experience is light, it can be challenging to be going against someone whose experiences measure in years instead of months. That's the bad news. The GOOD news is that there are ways of getting around this issue.

The reason experience speaks louder than academic achievement is that the employer wants to know that you know your stuff. You could have a 4.0 GPA and still not know how to code your way out of a paper box. The employer needs to know that YOU know what you say you know. As a programmer in this modern age, this becomes easier to accomplish than you might think. Here are some ways you can show off your skills:

  • Build your own website. If you're going to be a web developer, show that you know what you're doing by having a web presence for that future employer to see. Use it as a testbed of new technologies you learn. Show off your graphic skills (if you have any - personally, my graphic skills rank somewhere around what you might see on a proud mom's refrigerator). Use your Javascript and Jquery knowledge to really make the website pop. Animations, interesting layout... anything and everything you can do to show off your skills, do so on that web site. In your resume, be sure to provide a link to your website and let your work speak for itself.
  • Build an app for a mobile platform. This is takes more effort, but will be worth it. Be it Android or iPhone (or both), having an app out there that your future employer can download and use will go a LONG way towards getting you that job, even if the job you're applying for isn't mobile-based development. Completing an app from start to finish shows that you're able to complete a project, that you're up on some of the latest technologies, and most importantly, that you have the drive to succeed. All these things look very, very good - especially when compared to the other schleps who are trying to steal your position from you!
  • Teach! This is a great thing to do, not just for sprucing up your resume but also for sprucing up your skills. When an employer sees that you're giving talks on a specific field of study for your local software development group, they are going to see that you obviously know your stuff. As well, it shows that you're able to communicate well with others to get your ideas across. This is a soft skill sorely lacking in the software development world. Simply put, we nerds are not known for out social skills. Showing that you have enough social skills to teach equates to having enough social skill to relate to your co-workers, and more importantly to the people that will be using the software you write.
  • Have a techie blog. Having your own blog can be a lot of work, but it's really all about having a web presence. Your future employer is going to look you up and see what you're doing online. Yes, this also includes Facebook or Google+, but those are mostly private social stuff (which I hope you're locking down tight!) You also need an upfront presence that you would like people to see from the professional side. A proper Tech Blog will do just that for you. Think of something that interests you, and write about it. If you enjoy writing games, write about it. Talk about new stuff you've learned. Talk about cool ways you've learn to accomplish specific tasks. Be informative, be fun - but try to keep it professional as well. Note that I said professional, NOT BORING! Be yourself, but keep the R rated stuff on Facebook or other media where it's less public. Is that selling out, or being fake? Perhaps - but then again, most people are more than just a one-sided coin, wouldn't you say? Why not keep your best face forward, so to speak. Impress your employer, get that job... and leave your wild side to be viewed by those you really care about.

Putting all of the above information on your resume will go a long way in making up for your lack of job experience. The next step is putting it on your resume in a snazzy fashion.

Microsoft Word has literally dozens of resume templates that you can use to make your resume look professional. This is well and good, but it's really only a few sheets of paper, or just a PDF. Want to REALLY make your resume sizzle? Well, this is a shameless plug for something that I'm not personally tied to, but I can't help but recommend DoYouBuzz This website is just cool - it lets you build an online resume that you can use to give to prospective employers... That's all well and good, but it also lets you tie in and make reference to all your online activity you wish to provide. Got a blog? add it to your references! Got a Linked In account? Add it! Most anything that you might have as an online presence, you can add to your resume. Most of it is available for free, but there is a premium version you can pay for for a modest sum. It's up to you to decide whether it's worth the cost or not.


Well, I'd say that concludes my little soapbox on resumes. Next week I'll provide some insight on where to find that perfect job - there's more out there than Monster!

Monday, July 6, 2015

So you want to marry a Geek/Nerd...

So you've found yourself that once in a lifetime person. This person fills all the right blanks in your 'perfect person' test. You enjoy being with this person, this person obviously enjoys being with you. They are self-willed, they have a good job and generally is a good person at heart. There's only one problem:

This person is a Geek.

And we're not talking about just any kind of Geek, for there are all types of geeks in this world. There are band geeks, there are Harry Potter geeks. There are gardening geeks and book geeks and cooking geeks and even knitting geeks. No, you've chosen a very special kind of geek... the original geek, the Alpha Geek...

A computer geek.

Your special geek not only enjoys playing video games for hours on end, but enjoys writing them. She will watch Star Trek (any flavor) and tell you how their computers probably have some derivative of LINUX running since they never seem to have any problems. If you're not sure if your geek is a computer geek, take the following quick quiz:


1: Does your geek know all the words to "White And Nerdy" and "All About The Pentiums," from 'Weird Al' Yankovic?

2: Does he proudly proclaim that the lyrics match up to at least 95% of his lifestyle?

3: When watching movies where there's some sort of computer programming going on, do you find it difficult to hear the words over her constant guffaws and "Oh, come ON" ?

4: Does he have a laundry list of computer languages he counts as languages he can speak?

5: Can she quote Monty Python's Quest For The Holy Grail verbatim? Has she done this so much that you're ready to go all 'Black Knight' on her?

6: If you ask him to go to the store for you saying, "Get a gallon of milk. If they have eggs, get six," he'll come back with six gallons of milk?


If your future spouse relates to even one of the above, you can be rest assured that s/he is a computer geek.

Frightening though this may be for 'normals,' take heart. There's a reason why you chose to marry her, so there is a way to cope with, and even accept, her computer geek ways. The following is a list of things to keep in mind in the care and feeding of your computer geek. Take heed!


1: Accept the fact that their computer is going to ever be a part of your life. This first one is a hard one to accept. After all, you married HIM, not his computer! What you must understand is, that computer IS a part of him. He needs that computer just as much as he needs food to eat or air to breathe. To be without it even for a short time can cause major withdrawal symptoms and major Hemorrhaging. While it is acceptable for you to expect some limitations to his computer time, be rest assured that you'll never get him away from his computer entirely - nor should you try. The real question is, are you prepared to have a spouse who has another love apart from you?

2: Give and take. Actually this applies to all marriages in general, but particularly so with geek marriages. Your geek is going to love all things techie. This include techie TV shows (Star Trek, Firefly, Dr. Who (to a lesser extent), and likely some Anime of some sort), Movies (anything Marvel-based, Sci-Fi, and to a lesser extent paranormal), books (usually Sci-Fi and Fantasy, although this can be expanded), and even social issues (mainly ideals and programs that help get the programming bug out to others.) The more you're able to delve into her world, the more you'll be able to get her to delve into yours. Try to expand her mind more, let her see the other side of life. Make sure your interests are piqued as well as his. This is the best way to really become a married couple.

3: Learn Hexadecimal. Trust me on this.



All in all, being married to a geek isn't too difficult, as long as you know ahead of time what you're in for. You can't change him, nor turn him away from his geekful ways. Embrace her geekiness, nurture it and even become part of it, and you'll find happiness ever after.

Oh, and if you're a woman marrying a geek guy, see if you can fit into a Slave Leia costume for reasons.





Tuesday, June 30, 2015

Letter to the young developer

Well, it's 2015. I've now been a software developer for, oh my, 25 years! I've learned a lot over the years.. C, C++, Assembly, Delphi, HTML, JavaScript, VB, .NET technologies... All of these and more were learned from the university of Hard Knocks, where I've been a constant student.

I've often wished that, in my younger years, I would have had a mentor to teach me the intangible things I've had to learn the hard way. Yes, keeping up with the latest in languages, tools and technologies is vital, but there are other things a young developer needs to know. I'd like to provide a few of those things now. This is a list of things that I hope you, young padawan, will take, learn and grow with.

1. Learning never stops. EVER.

Whether you're fresh out of college or you're a 20 year veteran of the programming arts, this same rule applies. Always keep learning. Never stop. I mean it. NEVER stop! There was a couple of times in my career that I felt quite comfortable with the technologies I was using. At one point, I was a Delphi developer, writing Client/Server applications using the standard tools that Borland offered. I eschewed all things Microsoft, as at the time all they really had was Visual Basic 4-6 for RAD (Rapid Application Development, the latest technology at the time). This was in 1996-2000. In just a couple of short years after that, Delphi popularity started to diminish, with everyone switching to VB.NET and, later, C#.NET. I was resistant to change, not wanting to learn yet another technology. I was almost left behind, and had I not seen the light when I did, my career would have been effectively over. Delphi is still around today, but only barely, and everyone is trying to move over to .NET.

Now, the move is to Web and Mobile Development. Are you keeping up? The languages are changing, the technologies are changing... keep learning, or get left behind!


2. No matter how smart or clever you are, you can always learn something new from someone.

This is a message that usually applies to the ones fresh out of college. You've got all this new learning in your head, you've got a knack for the art of programming, and you can't wait to show your co-workers how good you really are. Keep this in mind, however: Chances are, your co-workers have been through several episodes of trial by fire. They have experience in ways you have yet to see. Don't take this as an affront to you or your skills - instead, take advantage of their experience and learn from it. In other words, refer back to rule one above.


3. You're going to make mistakes.

This one should be obvious, but we developers have a hard time admitting to our mistakes. It's important for us to be the smartest person in the room, and we'll do almost anything to keep that image. The simple fact is, you're going to fail at some point. You should accept and understand that, because your boss and your co-workers sure do. They know it's going to happen, and they're going to see how you handle your mistakes. Are you the type to try to hide the mistake, or perhaps blame it on someone else? Don't do this! Own up to your mistake and learn from it. Show everyone how you've learned, and don't make the mistake again. This shows more than any cool bit of code you could write.


4. Enjoy your life!

This is a tough one for some people. It was for me, and it may be for you. Many developers are introverts. I happen to be the exact opposite of that, but when I get in front of a computer and start typing, I tend to not come up for air. Everything else goes away and I become one with my code. This is good, in that your focus makes you a better programmer. Just remember that have family and friends who also want to be with you. Sticking to your computer 24/7 may make you a great programmer, but there's more to life than computers. I'm hoping you'll realize this sooner than later. I didn't, and it cost me dearly. I would spare you from this. Live your life, both in and out of the cyber world!


5. Finally, one word: Diversify!


In your learning, don't forget to expand your horizons. Love Windows? Try the Mac. Try Linux. Love Oracle? Give Microsoft SQL Server a go. Android? try iPhone. The point is, the more you know, the more valuable you are. This bit of advice is slightly different from rule 1. Keep learning is always key, but be open-minded about what you learn. This rule will make you a better programmer in ways you may not see now. Trust me on this!


6. Ok, one more - teach others

So you've learned a new bit of technology. Do yourself and your colleagues a favor and share your knowledge. Start a podcast, write in a blog. Keep your own website. Give talks at your local users group. Doing these things helps in so many ways. Your name gets out there, and that's a good thing. When you have to teach something, it drives you to know more about the subject you're teaching, and that's a good thing. Your colleagues learn new things, and that's a good thing for everyone. Don't keep your knowledge to yourself!


Ok, that's about it for now. I hope these 5 (ok, 6) rules will help you. I know it would have helped me way back when. Try them out, and soon you'll see what I mean.

Good luck!