My Main Tasks
To write design documents for a feature or a system; and to write the code and tests to create it; and documentation for other developers to read. The system may be a web application, or mobile app, or a desktop application; in future, it may be a voice-based system, such as a “skill” for Alexa, the virtual assistant from Amazon.
What Douglas Crockford called “the abyss”, a place software developers find themselves more often than we care to admit. Something in the system is not working, but the developer doesn’t know why. It may take hours to get to the root of the problem.
Who Influenced Me
I learned to program an eight-bit home computer during my first year at secondary school. It was on loan from a relative. I loved to write computer code and to learn about the machine. I learned several computer languages in my teens.
Work-life balance is generally good, although there may be occasional weekend work as the team approaches a deadline for product release. Most of the time, software developers work office hours, Monday to Friday. And most technology staff can choose to arrive early and leave early, or arrive late and leave late; usually with an option to work from home (say) two days per week.If you work for a startup, staff layoffs may occur, if the firm isn’t hitting its financial targets. It may happen even in a technology giant; as technology evolves, the giant’s offering may go out of favour with its customers. The good news is that, on any given day, there are literally thousands of jobs available in the computer industry in Ireland.If you wish, you can move from (say) developing web applications to mobile apps. By 2020, five billion people will own smartphones. The Internet of Things, voice interfaces, augmented reality and virtual reality are on the verge of going mainstream, with enormous scope for new software.
Some developers progress along a ‘technical career track’ to ‘principal engineer’ or ‘software architect’; others switch to contract work, for better pay and more flexibility; or move into management. If you have an idea for a software business, you can use your skills as a developer to create a prototype and bring a product to market.
Most Useful Aspects of my Education
Crafting software is a combination of different kinds of thinking: linguistic thinking plus design and problem-solving. I have always loved languages. I studied French and Spanish at school (and basic Japanese in third year at college). Mathematical problems at school and college make for good practice. All kinds of games are useful mind-training for problem-solving, from ‘Diplomacy’ to ‘Risk’ to chess, or ‘Magic: The Gathering’. And of course, building lego spaceships of my own design as a child. (No, I don’t have evidence for the significance of the above, merely suspicions.)
Useful Work Experience
Get a summer job, work placement, or internship in a software firm (or in an IT department at a bank, as I did).
Software development is sedentary work. Obesity is a potential hazard. Choose a sport, or form of exercise, and make it an integral part of your life. Writing software is mind work. Physical exercise is vital for health of mind and body. Mens sana in corpore sano.