Looking for some career advice!

Looking for some career advice!
0

#1

The past few months I have been planning for a career change and am considering shifting my efforts to a career in web development. I have recently started to learn HTML and plan to continue with CSS and JavaScript. So far I enjoy what I am learning and find it all very interesting but before I make the commitment to a career, I was looking for some advice from professional web developers. I am looking for advice on things like: What’s a typical day like? Favorite and least favorite things about your job? Education or skills most needed?

Some info about me, I’ve completed undergrad with a Business focused degree, no real experience in web design or development and have been working in Human Resources for just under two years now. I know that I am at a very beginner stage with my coding capability right now (may even be an understatement) but I am looking to get a realistic picture of what a possible career would look like starting out before I decide if this is truly the path I want to take. I greatly appreciate any advice you can offer!


#2

My day consists mostly of coding!

I get into the office, maybe grab a coffee with a co worker, and then check my Asana board (a bit like Trello, a project management tool) for the work I’m assigned.

I’m mostly a frontend developer, but I do some backend stuff with Rails, and minor dev ops stuff with AWS. I didn’t know Rails or AWS 3 month’s ago when I started.

Typically, I’m assigned work on the company’s flagship product, or on client work. Mostly it’s React and I just get on with it, but reasonably often there is a new technology in the mix I’m unfamiliar with, such as Redux-Saga, CesiumJS, Rails etc. This is usually in existing, large code bases with few comments, so I spend a lot of time reading other people’s code figuring out how it works, and a lot of time reading docs.

To an outside observer it would look like I’m just staring at a screen 8 hours a day, but really I’m solving interesting problems and find it nice and varied.

You have to be very comfortable with feeling frustrated and vaguely stupid most of the time though. If you can learn to ride that feeling all the way to the eventual victories, then it’s very rewarding!


#3

My typical day consists of:-

  1. Staggering out of bed.
  2. Grabbing tea (decaf).
  3. Strolling over to laptop in spare bedroom.
  4. Reading emails (from customers and forum users).
  5. Getting more tea (decaf) + eat flapjack.
  6. Start Coding.
  7. Lunch on patio (if UK weather ok).
  8. More tea (super strong TeaPigs earl grey so I don’t get dozy in afternoon).
  9. More coding (BTW: I like coding).
  10. Maybe a bit of gardening (if weather good).
  11. More coding.
  12. More strong Tea.
  13. More coding.
  14. Wife returns from teaching job, starts chatting, interrupts train of thought so can’t code anymore.
  15. Glass of wine.
  16. Watch period dramas on sofa with wife + eat food.
  17. Wife goes to bed.
  18. More coding (I really like coding).
  19. Watch Family Guy (maybe with glass of whiskey).
  20. Go to bed (dream about coding).

Living the Dream Baby! :smile:

You might have guessed that I’m a freelancer… actually I’ve now progressed a bit beyond that, because I have my own software consultancy and a team of 3 coders working for me (who also work from home). BTW: I’ve been coding professionally for 35 years. :blush:

I started my career working for other companies, some large some small. However, although I enjoyed the social aspects of working in a team, I have a bit trouble with authority… basically I hate being told what to do. I also don’t perform well when made to work set hours. I’m a REALLY good coder, but I need to be in the right frame of mind to do it and I can’t do my best work when forced to work in particular time slots… I might find my mojo at 10pm and code for 5 hours straight, or I might find it at 11am and code right through lunch. Maybe I’m not normal, but I think there are others like me out there, so for those type of people I can recommend the freelance route.

The one big drawback of freelancing from home is that the isolation can drive you nuts! I used to think that I was not a ‘people person’ and that I could spend a whole week on my own at home without batting an eyelid. I soon discovered that this was not true. I found myself gradually going stir crazy at home, talking to myself, feeling paranoid and stressed about things that never used to bother me… I felt like I was gradually going insane :frowning:

Don’t worry, we are coders and therefore an excellent and optimistic problem solvers (sometimes over optimistic), but every problem has a solution… for me this impending madness was alleviated by spending 2 days per week out of the house, either working with colleagues (other coders) at commercial shared hot-desking facilities, or simply going round to their houses for a bit of pair programming. Actually the occasional bout of pair programming can be a really enjoyable, very effective and a surprisingly efficient way of coding. Two brains are better than one and you learn from each other too.

I also recommend playing sports or joining exercise classes, which is good too keep your body and mind healthy as well as giving you the opportunity to get more social contact. It’s particularly important to get regular exercise if you have such a sedentary job like coding where only you fingers are moving all day. Actually, it often makes me laugh to think that I make hundreds of dollars a day by simply twiddling my fingers :sunglasses:. Also, the endorphins, dopamine and adrenaline released during exercise are also very important for a healthy mental state.

Favorite and least favorite things about your job?

My favorite thing about my job is the opportunities for being creative and inventive all day :slight_smile: I also love the challenge of problem solving. In my experience, not all coding jobs are necessarily very creative, especially when you work in large companies and you are given a very well defined and narrow task to do (you are a small cog in a big machine).

I found it’s much better to work in smaller companies if you like some freedom to architect your own software and design your own UI etc. In large companies someone else will often get those jobs and you will end up just being a ‘code monkey’ (never mind how brilliant you are), you are just a resource not a person to them.

There is a great song called ‘Code Monkey’ which nicely describes some of my experiences in large companies :- https://www.youtube.com/watch?v=v4Wy7gRGgeA

Education or skills most needed?

It’s all about your portfolio… for most coding jobs these days, it’s all about proving that you can walk the walk and not just talk the talk. Honestly, I’ve met many coders with PhDs who were useless at the practical and creative process of building apps and everyday problem solving that it requires. I only hire people if they can show me examples of their previous work that demonstrates their knowledge of the particular technology I’m looking for. I don’t care if they dropped out of school at 14 as long as they can code in a structured and logical manor… and communicate what they have done to me verbally in a coherent manor. I don’t mind if what they show me was just done in their bedroom at night and they have no real commercial experience. I like to see good clean structure and lots of comments in their code too. This indicates to me that they are more likely to work better in a team.

One last piece of advise I’d like to give you… Wear sunscreen!… No, really it’s this:-

Try to direct your career towards the subject matter that most interests you, this way you will be more motivated to perform well and progress in your career. For example if you are interested in medical stuff try to find a coding job in a hospital or medical devices manufacturer, if you like architecture, go and work for an architect. Don’t go and work for an accountancy firm or a bank just because it pays lots of money… You will soon get bored and start under-performing and then feel miserable… or even get sacked!

I’ve actually worked for about 7 companies throughout my career and I’ve voluntarily taken a small pay cut every time I moved jobs. This was either because I got bored or felt under- appreciated at my current place, but I always quickly made up the losses and ended up earning way more money shortly after each move, because I chose jobs that I was interested in and hence performed way better in.

If you play your cards right and keep directing your career (and hence skill set) towards the things that you like doing… then eventually you could end up in the enviable position of waking up each day, doing your hobby and being paid for it… just like me :smile:

Hope that helps someone
Regards
David (founder droidscript.org)


#4

Thank you for your insight, this is very helpful for me. It sounds to me like there is a lot of constant learning and problem solving going on, both things that I look forward to!


#5

This is very insightful, it sounds like you have quite a good set up for yourself and have really done a lot through the years. You have given me a lot to think about (mostly all good news!). I do worry about being isolated, especially since now I find myself having a similar feeling but you’ve given a lot of good advice for helping with that. I am definitely a more creative person and by the sound of it looks like a smaller company would be a better fit for me.

I definitely have a lot of work to do in terms of learning and building a portfolio since I just started out, but I am confident that I can get there. Are there any resources that you would recommend to help me out along the way?

P.S. Great song! gave me a good laugh and now I’m sure it will be stuck in my head the rest of the day.


#6

I am an enterprise developer, but CS was not my education background. I am a product of self study and coding bootcamp.

My job consist of development of different parts of the stack dependent of the requirements of my work items. So sometimes I am mocking up web UI for an internal application, sometimes I am implementing REST APIs or writing SOAP client to interface with other internal applications, and sometimes I am monitoring the database to trace work flow and implementing triggers and patches.

My typical day breaks down to about 1-2 hours of email communication, things like hand offs to offshore developers, asking/answering questions about production system, and communication with supervisors. 1-3 hours of meetings, could be planning, help business people create system requirements, System design rework, getting access to required internal systems…Etc. 4-5 hours of coding of which 30-50% of it is spent googling thing I don’t know or remember, reading internal documentations and codebase and/or asking other developers about the codebase.

It is nothing glamorous or romantic, I’d even dare to say it’s somewhat inefficient, but it is the reality of my job. The backbone of everything I do is the web stack, and the pattern are mostly standardized. I’d say the hard part of my job is sorting out communication because it is a big enterprise therefore data, codebase, services can be spread among a lot of different teams, and working with black box internal applications and internal libraries that are poorly documented.


#7

This is great! I think that it sounds like working in a larger company would not be suited to my work style due to the heavy standardization and pattern-like work involved. Also seems like spreading the work among a lot of teams would be very easy to get confusing fast. The overall workload seems to be very in line with what I was hoping it would be. I appreciate your insight! Thanks a lot!


#8

My advice is to not be fixated on the job details and style yet, keep an open mind as you build up your skills and knowledge. Most jobs demand some flexibility, no matter how perfect of a fit it may seen at first. Different companies have different practice and culture, big or small. Pattern and standard are part of maintaining stability in complex systems, wrangle chaos is part of the job when you code. It boils down to communication, management, and applying your skill/craft to problem-solving, in that respect, it is not that different from any other job.

Leave the detail vetting for your job search, afford yourself the luxury of choice by building up your skills, portfolio and personal connections and become someone good enough that everyone can hire you without reservation. My first-hand experience is that it is not the easiest industry to crack without some tech background, it takes a little extra work to be seen and heard without it.

Last thing, people don’t tend to mention this, but personal skills are just as important as your technical skills, it is an underrated but very much needed aspect of being a developer.


#9

General Info
I work for a smaller consulting/software development company, so part of my job is to work for clients with direction from the Project Manager. The other part is working on our primary flagship project, which usually consists of full-stack work.

The best part of working in a small company is you have far more free reign of how things get done, the bad is if your not sure, odds are no one really is sure, especially if your doing something no one has done before, so you must be good at figuring new things out yourself.

My typical day
My day’s usually start around 10am so I don’t have to deal with 7-9am traffic. (I live in a large city, so its terrible at those times). I spend easily 80% of my “working” time working on new features, and the rest helping other’s on my team. A key reason why I became the “go-to” guy is experience I gained from personal projects. (I talk about this later) The usual eat lunch, program more, talk to the PM about any issues I faced, or problems that came up, re-evaluate the work that needs to be done, get it into the project management system (which depends on the client, project, external/external) and head on home to work on personal projects.

After hours
I have been spending a number of hours after work on learning new concepts, and practicing my programming skills. I’ve been doing this since I more or less figured out what I wanted to do in life (program)

Education
I have a CS degree, and the best thing I gained from my degree was internship opportunities which turned into experience, which turned into networking, which finally turned into my current job. But don’t think you have a disadvantage without a CS degree, it can easily be made up for with personal study, or hard skills. I personally don’t think I learned more than 20% of my current programming knowledge from school, the rest is from external experience.

Key Skills
I’d say if you could pick a single most “needed” skill to strive to have is the ability to learn fast. I don’t think there’s a single trick or anything, rather its a method that works for you to learn new concepts fast. I personally learn best by doing, which I personally recommend.
I got started with web development by diving into the deep end, where I had to learn a multitude of concepts at the exact same time, with only limited resources. It was a massive grind, but I learned a lot

The best way you know if your cut for this sort of work is to dive into it
I personally recommend jumping into the deep end by trying to build something you think you should be able to build when your “ready for the job”. Either this is a responsive web portfolio, if your more of the web designer type, a full stack MERN stack app, if you want to be full stack, or maybe throw in some CI/CD too, if your a dev-ops guy. (If you have no idea what I just said google each of the terms, might get some ideas :smiley:)

Hope that helps!

PS. I graduated with a grad student who got his Bachelors in English, and found it out was more or less useless for jobs, so he went to get his masters in CS. I saw him in a few classes and he learned a lot, and came out to be one of the “smarter” students I knew. So don’t think you can’t make the cut, it’s all about learning all the things :wink:


#10

This is great, a lot of good advice here too. It is a little concerning that I might find myself sort of stuck on my own if there comes a time I am not sure of something, especially with just getting started, but I love to solve problems so I think this is something I would welcome with open arms. I am definitely looking for something that allows me that “free reign” to choose how things are done and this definitely helped visualize how I could get there. Thanks a bunch!


#11

I’m glad to hear the part about feeling stupid as I get that feeling quite often :smiley: