Tuesday, 24 January 2017

How i got here

Pascal was my 1st programming language and it was the only lesson where i could have fun in class ,writing endless loop trying to come up with a matrix kind of screen but that would lead to computer restart.

After college i thought all was smooth ,little did i know its a hell of a career with its intrigues .In my 1st job i got immediately blindsided by unwritten rules and other day-to-day mix, that no one bothered to caution me about. And programming is no exception.

I learnt thats as a programmer, to get work done, you need to know

1. Version control systems
 Universities teach how to create source code for programs, but usually ignore everything about the management of that code. Every programmer should know how to create repositories, edit and commit code, and branch and merge effectively as part of a project workflow using Git or Azure ,BitBucket et al Subversion. By using the version control tools a programmer knows how to keep track and organise his work

2. Communication
I used to miss this classes and downplayed the content. waaaaah the 1st time i wrote a report it was a hectic session .trying to write a good report ,know which pre-position to write where .....i learnt that You also have to write release notes for your projects. You write commit messages for version control. You write tickets for bugs in the system. All of these and many more require clear, effective English communication – a skill that computer science programs seldom emphasize.

3.. Using libraries
Nobody needs to use a regular expression to extract the hostname from a URL. Every modern programming language includes a standard library of common functionality, or has standard libraries easily available.

Programmers need to understand that code that has already been written, tested, and debugged is going to be better quality than new code that she has to create. Even more important, code that doesn’t have to be written can be implemented much faster.

DONT be a google programmer who just copy pastes codes and move on .understand what that code does.

4. SQL
All the SQL I know I learned on the job.

Everything goes into and out of a database, and SQL is the language that’s used to retrieve it. SQL is also a declarative language, not a procedural language, and so requires learning a new way of thinking about problem solving. But every programmer should understand the basics of database normalization and be able to do SELECTs (including basic INNER and OUTER JOINs), INSERTs, UPDATEs and DELETEs.

5. Tool usage: IDEs, editors tools

It’s the job of programming tools to help manipulate the source code and all other data in the computer to make the programmer’s life easier. The Unix command-line, shell scripting, find, grep, and sed should be part of every programmer’s knowledge set.and working on different platforms helps as some commands and activities are still command-line based

6. Debugging
Every programmer should be able to debug with an interactive debugger .The ability to track down a problem through step-wise refinement is too important.

7. Defensive programming
Even rockstar programmers are fallible, much of the world is out of our control, and things will go wrong. Defensive programming is about understanding that simple truth. If things didn’t go wrong, we wouldn’t have to check file opens for success, or assert that customer IDs are valid integers, or to test our code to make sure that it works properly.

Programmers need to grasp that compiler warnings are helpful tools that make life easier, not nuisances to be avoided. Every programmer should know why each PHP program should start with
error_reporting(E_ALL), or c#.

                result = SafeDivision(a, b);
                Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
            catch (DivideByZeroException e)
                Console.WriteLine("Attempted divide by zero.");

8. Teamwork
Very few programming jobs allow you to work entirely on your own–and those that do are often intellectually crippling and leave you a worse programmer than when you started. Your code must interact with code written by others, or often be intermingled with code from others. No matter how talented, a programmer who can’t collaborate on projects with others has negative productivity, and quickly becomes a liability to the organization.

9. Working on existing code
In school, every class assignment is a new, greenfield project. That’s not how it works in the real world. The first thing that happens to new hires is they get assigned to fix ticket #8347 in the bug tracking system. After that, they have to add a small new complementary feature to an existing system with an established codebase. Designing new code comes months later, if they’re lucky.