Adventures in Web Development.

I'm a Terrible Programmer

I’m terrible at naming things. Sometimes I end up with a very long method name like getAllAwesomePeopleInTheTwitterVerse().
Or a very short variable like $i.

I don’t always follow best practices.
Yes I know a lot of best practices but I only implement a few of them.
Either because of lack of time to see for myself if its indeed a good practice or just plain laziness.

I do not optimize my code.
And what I mean by this is that I haven’t used profiling tools on my projects
to see if its actually speedy.

I do not use caching. Queries runs all the time even if there are no changes in the database. I’m thinking that not caching the data will not actually affect the performance if there’s only a small group of people using the application.

I do not refactor my code all the time.
Sometimes I end up repeating the logic a few times and then I’ll get lazy
and not improve the code.

I use frameworks, libraries and plugins all the time.
I haven’t tried implementing MVC on my own. I use Frameworks like CodeIgniter, CakePHP, Zend, Yii, and Laravel to do things for me.
I use jQuery to manipulate the dom and make the elements dance, sing and fly in the air but I have difficulty implementing it using plain JavaScript.
I always search on Google for the functionality that I need because there may be already a jQuery plugin written for that. Then I’ll just hack through the code and modify the stylesheet files if I have to customize something.

I suck at JavaScript. Yes jQuery is JavaScript and I believe I’m good at jQuery but it doesn’t necessarily make me a JavaScript developer.
And because of this dependence to jQuery I end up with shitty smelly code full of event delegation and variables polluting the global namespace.
Thankfully I discovered some MV* Frameworks that will hopefully help me with this
shitty client side code problem.
Writing cross-browser JavaScript code is not quite my level yet.

I’m terrible at implementing coding standards.
Sometimes I name my variables like $firstname, sometimes I end up doing
$last_name for the others. One of these days I’ll try to research on a tool that can implement coding standards for me. Or at least a text-editor plugin
that will shout at me if it sees anything inconsistent in my code.

I also want to learn a lot. To the point where I don’t know what to learn next anymore. And once I started learning something I couldn’t really get to the deeper parts because then I will be interested in learning another thing again.

I don’t do Test Driven Development. Yes I’ve wrote a tutorial about it and explored some of the basics like assertions, data providers and dependencies but it stopped there. I’ve never actually implemented TDD in a project.

I don’t do automated testing. Yes I’ve heard of Selenium, Sahi and other automated testing tools but I haven’t actually tried them.

I do not use tools that will make my life easier. Things like yeoman, grunt and bower, IDE with all the shiny new guns and swords.

I do not constantly think of the code that I’m writing. Sometimes I just copy and paste
thing here and there. I name variables and methods poorly. And I end up with spaghetti code.

I’m having difficulty planning how should I code things. Something like having a clear picture on how to go about things. Yes I use mockup builders and I write things (system flow, psuedo code) down on paper but I cannot seem to have a clear picture of how to organize my code so that I will need lesser refactoring later on.

Those are the things that makes me believe that I’m a terrible programmer.
But I’m working on it each day.