The Beginning of a software developer
A few years ago, after my graduation a lot of things gone through my head. I don’t know what I was going to do with this life. I was very fond of programming, but my level of programming was niche. I had a lot of ideas in my mind, but no direction at all. During that time, I try to search for programming jobs that ended in a big depression for me. Everybody hire only an experienced candidate; no one even considers a fresher. If they do, they prefer campus recruitment. When I go through their requirement list, they specify spring, hibernate, jQuery, a lot of stuff that I didn’t even understand. That day I got panic and I don’t know where to start, which programming language to select and how to build a career in programming.
I thought I should attend come certification programme, so that I will get some general idea about programming. So I did a certification in Java-Android programming, but sadly that didn’t make any difference. The certification program was very boring and, the practical sessions is either like kids works or cliché programming tasks that I already did during my graduation. That certification programme was provided by one central government agency, but I am forced not to name them right now. That day I understood that these training programmes are a waste of time, unless these sessions should be handled by an experienced developer who can guide people in the right way of developing applications.
Even then I found this path as a potential way of living. I started thinking that I could select an open source development platform which has a lot of online support and projects available so that I could teach myself, to crack an interview session at least. I chose PHP, which is a widely recognized web development language, and did a couple of small projects, that was fancy but can demonstrate that I knew how to code.
I got a chance to introduce myself into an IT company in techno park, Trivandrum (India), where the project works that I did during the learning sessions, helped me to make a real impression among the interview panel. My first job was not that easy, the company was a start-up. They can’t afford training sessions for the new recruits. They don’t have resources for train us, instead they put me into live projects where I struggled a lot to follow the professional way of development. Online client meetings, code review, DB architecture meetings, technical writing. etc, I have to participate and contribute to these processes, that was really painful, but my project manager keeps on motivating the fresher’s, that added some fire not to fed up from beginning of a career.
An important part of my transition to a professional developer was these struggles I overcome and the practice I did to compete with my fellow co-workers. I learned as much as I could ever imagine. The real-knowledge that gained from working in a company is invaluable. Learning how to work with clients, colleagues, and within predefined constraints is very essential. This is something you can gain only from the field.
One of the requirements for becoming a best programmer is the desire to continue learning. I always see myself as a beginner, so that I can maintain a fear that motivates me to keep on practicing and learning. The minute we see ourselves as a master, is the same minute we stop growing. I learned the technical practice of web development, that transform a fresher to professional. It’s a path that every programmer should take, regardless of the time and ability. Following are the common practices we do on regular basis.
- Reading tech magazines/business news (Eg: Techcrunch, Mashable, Businessline)
- Code reviewing (with other colleagues)
- Mind game (Puzzle, brain test apps etc.)
- Searching about latest design trends (UI\UX) (Web, mobile & logo designs )
- Checking Naukri/indeed for similar designations (Eg: Senior Web Developer) and understanding the requirements for that post.
- Conducting technical/functionality presentations (PPT, max 20 mins) within the team
- Trying out different repositories