Learning C/C++

I’ve been studying C/C++ lately. Coming from the “enterprisey” background of J2EE/PHP/.Net It’s a lower level than those previous garbage collected languages i worked on. I’m trying to make a 2d game maybe tetris clone. with that i’m also adding allegro as my lib. My tools, all free and open source software Netbeans 6.5 C++ and MinGW Compiler. Sorry visual studio =)

Dev Team vs. One Man Army

This post was written after reading this SO post:

http://stackoverflow.com/questions/529757/are-there-any-famous-one-man-army-programmers

Being a freelancer for 5 years now. I’ve been working solo for 40 hrs/week and i would like to say i’ve never been as productive and happy as i have been. You see when programmers get productive they tend to have a feeling of accomplishment. Devs get this feeling of euphoria when they fix a huge bug.

Back when i was still employed and working in a team. I can get along quite well with my co-developers but i get burned out and frustrated often because of the back logs i’m having. You know that feeling of getting pressured,anxiety and sometimes guilt.

This may have caused with the office distractions. For example when you’re in the flow and it seems everything is getting done, suddenly one of your officemates just had a conversation about thier high school friend “John” who got married this year. You then tend to join the conversation even without even speaking!

So which is better? having a dev team or a one man army? More programmers mean faster and better quality product? Not really, see in a manufacturing plant more workers mean higher capacity and better quality.

But software is not a manufactured product. It is a service industry. We are more like a mechanics, barbers or cooks.  Written in the Cathedral and the Bazaar by Eric Raymond:

software is largely a service industry operating under the persistent but unfounded delusion that it is a manufacturing industry.

So if you have a dev team what you spend on your money on is not only actual code being written but often conversations about the weather, news and etc. Sad but somewhat true.

So what about one-man-armies do they exists? Yes they do but most of them are superstar devs

John Carmack - Created Doom all by himself.

Linus Torvalds - He wrote the linux kernel solo.

But this industry is not  at all about one-man-armies at all. My last advise; try to find those specialist and make office conversations to minimum. Easier said than done.

How to write self-documenting code

Just found a funny comic for programmers this one is my favorite so far :)

http://www.geekherocomic.com/2008/11/12/real-programmers-dont-write-documentation/

Cakephp Meet up in Tokyo

Bakers in Japan just held a cakephp event in Tokyo. Check out the slide shows below they have topics in 1.3 It’s in Japanese though so i couldn’t understand completely.

I envy this kind of developer meetups :(

I wish we have the same in the Philippines.

http://bakery.cakephp.org/articles/view/report-cakephp-meet-up-at-tokyo-4th

Freelancing not for part time work! :(

Last year i went on a head hunt for a junior programmer. One person i asked “do you have a fultime job?” he replied. “Yes and i want to be a freelancer part time”.

Well that just made me disappointed. Freelancing is not for part time. You can even earn P180,000.00/mo i tell you.  

Here are two wealthy odesk guys:

Randy from Bulacan .NET guy 

http://www.odesk.com/users/~~8a1e7b7891acaadf

Earnings: $68,211

Started in odesk: 2007

Rommel from manila PHP 

http://www.odesk.com/users/~~1b152eb3f1013f5c

Earnings: $42,732 

Started in odesk: 2007

He must be thinking he is making far superior income to us work at home guys. With his P60,000.00/mo job and he must be taking home 40k after taxes. go on stay with your company with your comfortable chair with your boss whom you cling on with your life and be comfortable. We dont want any competition.

Thick skinned freelancer

Back when i was a fresh out of college i applied for a few jobs and i’m already blessed that i was accepted as a junior programmer in Quezon city.  I was rejected 3-4 times before that. i still remember when the HR in a company in Clark was talking to me in straight fluent english and me being a “technical person” didn’t respond quite well. They didn’t call me back.

But please don’t think that i have poor english skills. I can write, read and comprehend very technical english words which is a necessity. It was just a disappointing interview and it lowered my morale a bit.

In my first year of freelancing, i realized how frequent rejection happens. From my personal experience my estimate is that only 20% turned into interviews and of these interviews 10% turned into jobs. Let’s say you applied for 100 jobs on freelancing sites you’d probably have 20 interviews and you’d probably have only 2 jobs. But this isn’t a game of chance like casino. It’s all about what’s in your portfolio the better yours the more money will come. Try building your profile in oDesk and make to it look like you’re trustworthy dependable and professional.

Your Best Empoyees will Leave you first

In our industry whether we are in a small or large company we always get to hire a highly skilled programmer. But often these type of employees leave first and why do the one we have retained are always junior level.

To find out why this happens i came across this very good article about employee retention.

An Email From a User of My Old Software

Today I received an email from a user of Elohai Accounting software. For your info in 2005-2006 when i started a business venture in software development using Powerbuilder 7 (a bad choice of language back then).

Anyway here it is:

Hello,
          i downloaded ceriwan inventary software tool from 
the web...and i am kind of interested in that software 
for my business but i do need some changes if possible 
i am ready to pay so let me know
thanks
Gxxxxx Cxxxxxx
India

This really unfortunate because i quit on the project in 2006. The reason, well i just gave up. Lack of income is a great demotivator. Another reason is that bugs were too difficult to replicate in a desktop application.  Third problem was msaccess it was a bad choice of database and it was very difficult to include in the install package. I didn’t know i needed ms office.

I don’t usually reply on these because i know i just had wasted their time today. I’m aware that their time is important because they are business people.

I hope someday i’ll go back and pursue software development projects of my own. maybe using Java or C++

How to Identify Senior Developers in an Interview

There are junior developers and there are serious “senior” guys. If you want your project to be done in a professional way find a veteran.

But how would you identify a senior guy? It’s difficult to know but one tip i know is when you are in an interview ask the question below:

Interviewer: What video games do you regularly play?
Applicant: I don’t play games anymore.

That probably means he is too busy and don’t have time for himself. if he does play any games i.e. DOTA or warcraft he might slack off while doing your project these are too addictive to ignore.

Note: mind the word “regularly” because some are just casual gamers or non addicts

First Cakephp post

This is my first developer post in cakephp and i will be posting more of this in the future. If you are a php citizen you already know that php sucks but it doesn’t matter

But I’m also here to tell you that doesn’t matter.

The TIOBE community index I linked above? It’s written in PHP. Wikipedia, which is likely to be on the first page of anything you search for these days? Written in PHP. Digg, the social bookmarking service so wildly popular that a front page link can crush the beefiest of webservers? Written in PHP. WordPress, arguably the most popular blogging solution available at the moment? Written in PHP. YouTube, the most widely known video sharing site on the internet? Written in PHP. Facebook, the current billion-dollar zombie-poking social networking darling of venture capitalists everywhere? Written in PHP. (Update: While YouTube was originally written in PHP, it migrated to Python fairly early on, per Matt Cutts and Guido van Rossum.)

So please use a framework like cakephp. Don’t ever write your own you just can’t compete. be a humble student and learn what other people has already written. No matter who you are or how experienced you are there will always be a better developer than you. And there will always be a better written code out there.

Now on to the cakephp tips:

If you are a real cakephp baker you are not using

$this->Model->query(..)

You instead use find with HABTM. Now if you need to lookup joins
like

$this->Users->query('select * 
              from users inner join groups on (users.id = groups.user_id)
              where groups.name = "Admin"');

Forget that and try to learning to use

$this->Users->find("Group.name = 'Admin'");

But in order to use that you must setup relationships in model

class User extends AppModel 
{
    	var $belongsTo = array('Group')
}
class Group extends AppModel {
 
	var $name = 'Group';
	var $hasMany = array("User");
}

Only use query in report generation especially aggregate sql functions where you use AVG SUM and Count in sql.

Next Page »