You may wonder what the life of a programmer looks like, and you’re not alone.
So here we go — what coders say about there lifestyle:
Aladin Bensassi, Web Developer, Consultant, Business owner, Avid reader And a CSS geek.
Well, it differs a lot from one developer to another. Programmers are very diverse and its hard to stereotype us. All I can offer you is a peek into my life.
I am a freelancer, consultant, teams manager, business owner and mentor to several young developers. It might seem that these titles are simply things I did separately at one point or another in my life, but I can assure you that I’m doing all of these at the same time.
Work is my way to justify my existence, so I work tirelessly and endlessly with the sole goal of improving myself to a newer and better level every day. I’ve been doing this for 10 years, and I feel like a better person every-time I look back. So I can confidently say that my ideology is working for me.
Not all people are equipped to handle the stress, the work hours and dedication it takes, to do what I do. But those who are can tell you that it’s really worth it.
This is a typical day for me:
- Wake up at 6am.
- Shower, eat breakfast and brush teeth by 6:30am.
- Login to Quora and answer all the messages I got that day. 7am
- Open my email and answer my clients or follow up with them. 7:20am
- Check my todo list from the previous night and highlight the important tasks.
- Go to my office and start working on my contracts until 12pm.
- Have lunch while looking at the bills and receipts of my other businesses and contact my accountant for a quick review. 12:45pm
- Visit or call my loved ones and checkup on them. 13:30pm
- Check on my teams and their progress, have a quick meeting and assign tasks to each of them. -These teams are not mine, I mostly work alone on my contracts, since I’m very obsessed with quality and efficiency. However, I do manage teams of other agencies- 14pm.
- Get back to work on my contracts, have some phone calls, meetings and try to make as much progress as possible. 17pm
- Go to my other businesses and see how things are going, and ask the managers if they need something or have anything to report. 19pm
- Go to the gym for a couple of hours. 21pm~
- Go home, take a shower and eat dinner. 21:30pm
- Go out with friends, have some fun after a long day of work. 23pm
- Go back, answer a few Quora questions and maybe work on some personal projects or learn a new technology. 00am
- Prepare my to-do list for the next day and go to sleep. 00:30am.
This is how most days are for me. However, there are somewhere I stay awake for a couple of nights, and others where I just enjoy myself like a normal person would do.
Brian Bowman, Principal Software Developer at SAS Software (1985-present)
NOTE: The following are my own opinions and recollections and do not represent SAS Institute in any official capacity.
I’m in my 33rd year as a professional programmer. For the past 31.5 years, I’ve been an R&D Software Developer at SAS. I’m very passionate about programming and especially the engineering and computer science behind it. Like many adults across a variety of professions, my life has seen plenty of drama and also seasons where personal and family issues took priority over stellar levels of work performance. Nevertheless, pursuing excellence in my career, with a passion continues to be a central part of my identity.
Important Career Projects
Here are chronological highlights of my SAS career, I feel very fortunate to have had the opportunity to do this level of work, beginning so early in my career and most importantly to have worked alongside so many talented and helpful technical professionals who have contributed significantly to my personal and professional development.
- Refactoring the original SASIO Assembly code written by Anthony James Barr, who developed most of the original SAS core supervisor. In my opinion, Barr is an excellent example of the best of the “old-school” systems software craftsmen. Unraveling his hand-optimized, sparsely commented assembly code was itself an education in Systems Programming.
- Writing the first version of PROC OPERATE in Assembly language, the ‘operators console’ for the first version of the SAS Share Server.
- Being tasked as the architect/principal developer of the Version 6 MVA Data Library for the mainframe host. This was mainly designing a file system and very advanced device, driver. Most of the filesystem was written in C, but the original dynamic DASD driver was written entirely in Assembly language. This project spanned an over three year period and included months of basic research.
- Writing a load module comparator utility in assembly language. This required an intimate knowledge of IBM mainframe load module internals.
- Working on machine code generation for the SAS Data Step compiler and also helping to design optimized code generation for cross-architecture transcoding. This is used to quickly translate various floating point formats and integers between different machine architectures during network communications between them. The language used: C and IBM Mainframe Machine Code.
- Designing and programming the SAS Item Object Store, a lightweight, small footprint “filesystem in a file” that provides both the stored template and output backing store for the Output Delivery System (ODS) in Base SAS. The language used: C.
- Getting to spend 18 months doing basic research for security technology in Base SAS. During this time I met and learned from many luminaries in Computer Security, including Prof. Ravi Sandhu and Bob Blakley.
- Spending 13 years working on the authorization subsystem and related components in the SAS Metadata Server. This included a considerable amount of R&D that led to being co-inventor on four United States patents.
- Patent US7644086 — Computer-implemented authorization systems and methods using associations
- Patent US8555378 — Authorization caching in a multithreaded object server
- Patent US9059983 — Authorization caching in a multithreaded object server
- Patent US8689324 — Techniques to explain authorization origins for protected resource objects in a resource object domain
- I’ve been asked how someone could work on a software project for this long. There are several aspects of answering this. The first is that it was not one project but many (e.g. authorization, internal authentication, logging, access control administration, multiple permission source dependencies and lineage, large-scale distributed authorization caching … and many more). Each new release brought new requirements and the need for higher performance and usability. The amount of software change over time required ongoing refactoring to keep technical debt in check. All of this fueled innovation. From a career development standpoint, the “longitudinal endurance” of working on a huge and complex systems software product from inception to maturity was quite an experience. I was fortunate to gain deep invaluable skill in coding for our internal object model, client-server binding, the SAS Threaded Kernel (a modern operating system abstraction layer and programming framework), object persistence, query optimization, Java, JUnit, and many others including a considerable amount of technical writing. I also learned much about working with and optimizing access to hierarchical, networked and high cardinality data-object relationships at high degrees of scalability.
- Towards the end of my tenure on the SAS Metadata Server R&D team, I designed and coded a new Java/JUnit-based testing framework based on JUnit 4.11 that significantly reduced the clock time to run a massive set of regression tests that exercise every feature in the server.
- Languages/Frameworks used: C, Java, JUnit, SAS, SQL, SAS Threaded Kernel, SAS Metadata Object Model.
- Since November 2014 I’ve been doing deep R&D work for Cloud Analytic Services (CAS), the distributed in-memory engine that powers SAS Viya. I specialize in the CAS distributed table architecture, parallel I/O access methods, managing encrypted data-at-rest, query optimization and general data management features. The programming environment is grid-based with a lot of threading going on.
- Languages/Frameworks used: C, Lua, and SAS, SAS Threaded Kernel, SAS Cloud Analytic Services ActionSet Interfaces.
- Patents (more are in the works):
Patent WO2017019794A1 — Distributed data set storage and retrieval.Patent US9703789 — Distributed data set storage and retrieval.
I have been happily married for 19 years to a beautiful woman from Finland. She is a massage therapist and regularly works on me to help ease the impact that long hours of work and study takes on my 6′4″ frame. My wife has hobbies that keep her occupied while I’m often spending 50–60 hours/week working and studying. We spend time together with our German Shepherd dog and attend NHL games during hockey season. She is very supportive and “just gets” that I’m an OCD geek who can submerge into the depths of computer science, programming, mathematics, music, etc. for hours and days.
Diet and Fitness
As I suspect it is for many, I have difficulty being consistent with high diet and fitness. I eat well most of the time but can quickly consume enough beer or wine over the course of a week to reverse the weight-loss benefits of otherwise sensible diet and eating. I am 56 years old, so it doesn’t take many “empty calories” to make weight-loss tricky. I have a professional level spin bike that ideally I would be on 4–5 times per week when in reality I’m only at once or twice per week. We also have essential Pilates equipment including a reformer and tower. I work with classical Pilates trainer Marie Sherr who comes to our home. I’ve been at Pilates for many years and ideally would work harder at it. For the past two years, I’ve been working extra toward the SAS Viya launch and honestly have not given enough time and energy to fitness. This is going to have to change soon.
I have been a long time student of classical and jazz guitar. The truth is I should be much better at Music that I am considering the investment made and the competency of the people I’ve studied/study with. I take a weekly classical lesson with Michael Kovitz and also try to play some jazz, rock, or blues for a couple of hours a week. Being a geek, I enjoy tinkering with guitar pedals, tube amps, and collecting excellent guitars. You could say that I live to work and buy guitar toys :-). During my career, I’ve been in a handful of bands, played several solo guitar gigs, and did the “church worship band thing” for a few years. I’m finding out now that I just don’t have time or energy to do anything more than prepare for my classical lesson and dink around with steel-string guitars at home.
I’m kind of a “friendly introvert” but mostly a loner with only a couple of “close friends.” My wife is my best friend, and outside of work I text or speak with the others sparsely. I’m casual friends with many of my coworkers, having spent nearly 32 years at SAS — a workplace culture that encourages career longevity. We often eat together at work where the conversation covers the gamut. We don’t do many regular planned activities together outside of work but do see each other at NHL games, concerts, etc. where we have good times!
I am autodidactic and a constant learner. I have an extensive computer science library, mostly now in the form of Kindle eBooks on an iPad Pro. I’m often reading and studying these materials while drinking coffee in the morning, during work breaks, on planes, etc.
EDIT 3/23/2017 — the italicized paragraph that follows was in my original post. As of now, I am discontinuing these plans because of career responsibilities at SAS and the availability of a very high-quality alternative in MIT Open Courseware. While these MIT courses are not offered for credit, they provide a great deal more scheduling flexibility for longer-term independent study.
I’ve also been accepted into an online Master in Computer Science at The Johns Hopkins University. However, work is so intense right now that I’ve not yet started the program but am hoping to begin formal studies toward this in mid-2017.
Advice to Young Programmers
The most important thing, in my opinion, is to understand your own learning style and modus operandi, then stay true to that no matter what the crowd around you is doing. Seek opportunities to be mentored, but be your own person and don’t let others have an inordinate influence on your life. Take a basic course in philosophy and learn to be skeptical of any claim that is not grounded in reality. Also, be humble and never take undue credit for another’s work. All of the work that I listed above is a direct result of having worked with and/or studied the code of brilliant systems programmers or computer scientists who went before me, or worked alongside with. Indeed I invented some cool stuff on my own, but even that came from leveraging knowledge and skill gained from having been mentored or taught by others.
I personally think it’s also important to find out what your goals are as early as you can. For most people, it takes some experience and some “hard knocks” to get this fine-tuned. Once I began studying computers in college, I knew early on that I was going to get into the depths of operating systems and database internals. What I did not know (at first) was that my Computer Information Systems (CIS) significant was less than ideal for this. Computer Science would’ve been a much better path, but I was already far enough in CIS that switching would’ve meant spending at least another three semesters in college. I was working toward an internship and full-time job prospects upon graduation which happens for me just a few months later.
The best advice I can give: If you want to succeed as a programmer, particularly at the highest levels of software engineering, get a math/science-based college degree in computer science or engineering, then get well-established in your career before pursuing intense romantic interests.
Kinman Covey, Lexeme explorer, software developer.
Summary (a typical weekday)
- Work: 9 hours
- Family: 6.5 hours
- Breakfast, dinner, after dinner
- Sleep: 7 hours
- Misc: 1.5 hours
- Commute, etc.
Work for a programmer is their bread and butter. It’s usually where we get to program the most. In my case, I process, review/monitor analytics, look for new areas to collect data on, and implement all of the above each day. I also take breaks to keep my sanity and drink copious amounts of coffee (a lot of decafs, though, I like the taste). I tried to write a chronological hour-by-hour timeline but failed since my days can vary wildly.
The work environment for a developer can vary from terrible to downright entertaining. Most companies know that a happy, comfortable programmer is an efficient one. The ones that don’t do this typically can’t keep programmers on board for very long.
For programmers whose work isn’t the most critical area of their life, the family is. In my case, everything I do is motivated by my family. I don’t currently get to spend as much time with my wife and son as I’d like, but I hope to be in a position that allows me to spend more time them relatively soon. I’m lucky in that I work about 45 hours a week right now (some developers work much, much more) which gives me around 123 hours to spend elsewhere. Not lousy relative to some programmers.
Thanks to the reality of what I’ve stated above, time with my friends has come to a halt as of late. I don’t boil this down to being a programmer, though. It’s much more aligned with a change in priorities. In the past year, I’ve graduated from college, gotten married, and brought our first-born into the world. Combine those three with getting plunged into the working world, and it’s a lot at once. I might be an edge case, and I hope to change it someday, but as of right now that’s life.
All of the above doesn’t leave much time for fun. To keep my sanity, I squeeze every bit of free time out of life to ensure that I’m not missing out on opportunities. Of course, spending time with my family is fun, but for the sake of separation, I’ll be excluding that time from this section (I feel I did the Family section justice). As part of my free time at home, I enjoy building side projects. I love creating beautiful web applications that could benefit the lives of others. My passion is creating things for others through programming. I love the feeling I get when someone enjoys something I’ve made. I can’t get enough of it. I’ve started hundreds of side projects, “finished” a few (is a project ever really finished?) and am working on a promising one right now. I love it and can’t get enough, but I pace myself so that I don’t squander precious time with my family.
I hope this provided some insight!
Joel Rivera, Founder at PixemWeb
No two Programmers are alike.
Some programmers work for large companies, and their job is like a typical 9–5 with a 401k, health benefits, and yearly bonuses.
Others are Freelancers who work from home on projects they seek out. There are no benefits, no 401k, no set salary or bonus. What there is is complete autonomy. This is what most programmers find appealing.
Others are hobbyist working on their own projects on the side or on small projects of friends and family.
I’m a Web Designer & Developer that specializes in WordPress. I am one of those Freelancers working from the comfort, but distraction filled place I call home.
I have 3 kids and my MUCH Better Half who allows me to do marathon sessions of coding without complaint. She just gets me.
I wake up at a different time every day depending on the time I went to bed the previous night.
I code virtually every single day. Some days can be as little as an hour and other days, most days as much as 10–12 hours. Only when needed do I surpass the 12-hour mark.
Since I’m a WordPress Developer, I spend most of my time working on my custom themes, but I also spend time monitoring all of my client’s websites and servers.
When I take on a new client, I help them pick a Domain Name, Choose the right hosting to determine if the client would benefit from a Cost-Effective Theme Setup or a Completely Custom WordPress Setup which is more expensive, but I tend to guide people to the cost-effective option first. Part of the consultation will be going over what expectations the client has and the types of plugins that may benefit them.
My Tool Set — Work Environment
I have a Triple-Monitor Setup and a Custom Built Computer that I built myself to spec it out as I wanted. I also have a MacBook Pro & Air and a dedicated Kali Linux Machine for my Penetration Testing.
I use the Atom Text Editor as my daily editor, and occasionally I will use PHPStorm.
- Command Line
- Command Prompt
- Linux (Ubuntu, CentOS, Kali)
- Server Administration & Configuration
My Aspiring Skillset
I’m currently working on improving in these areas.
- Premiere Pro
- After Effects
- Photography (Really not that good at this.)
How’s my health?
Most people think of coders as people who think little about their health. That’s not me, and a lot of coders actually think about their health.
I work out in my backyard.
This is really convenient for me since I do have 3 kids and someone who likes to spend time with me. Going to a gym would be a waste of time in my book since time is something I cherish.
While in the yard I BBQ
Every day I try and learn something new. I play around with ideas for hours to see if the end result is something that can be beneficial to myself or others.
I probably read as much as I code. Not really but it feels like it. Typically I read the Documentation Pages of the coding languages I specialize in.
What about Friends?
I BBQ a lot, so I have my friends come over on the weekend, but during the week, I’m mostly a loner.
They Understand Me. They let me be. But we do travel and eat out often. I’m actually teaching my kids the art of coding. One of them is actually learning C# for Game Development.
I’m rarely on your typical sites like facebook, I do post on facebook family stuff, but I’m not a Power Facebooker.
I spend a lot of time here on Quora, but often I take breaks of a few weeks if I’m working on something big.
I do have all the typical accounts but again, by no means am I a power user. Ironically I do help my clients out with their social media campaigns and social media optimization.
Finally, the Conclusion!
If you made it this far, then you deserve a round of applause.
And we found this lovely infographic.
And this one: