Overwhelmed and Looking For Advice and Coping with Stress


#1

Hello Everyone,
My name is Christian and I wanted to get people’s input in my situation. I would also like to apologize in advance for this long post for people who will read through the entire thing. I am currently 30 years old and I am a career changer. I do not hold an undergraduate degree in computer science and I quit my job last year and started to learn my first programming language (Java) mid March of 2016. However, around my area, there is a master of science in software engineering program that was offered that does not require too many deficiency courses for people who got holds a degree in science, mathematics, or engineering, so, I decided to apply and I am currently pursuing that degree and I am expecting to graduate this coming Spring 2018. I have to admit that I did not thoroughly think about my decision to go back to attending a university and during that time I was not completely aware of what I signed up for and the major differences between software engineering and computer science as a whole. Due to myself being naive, I found out the hard way that the master’s program is more involved with learning about the entire software development life-cycle and all the associated topics involved such as requirements engineering, software measurement, software verification and validation, etc. Long story short, it is assumed that you are already a proficient programmer as it is far from the focus of the entire master’s program. Anyway I originally set myself a goal to become a Full-Stack Java Developer by the time I graduate, however, I wanted to ensure that my grades don’t suffer in the master’s program so I ended up spending more of my time learning for the master’s program and less on improving my programming skills. I also peruse through job postings for Java developers and ask people who are already Java developers and it seems that Java development interviews predominantly focus on data structures and algorithms more than anything (which we all know if you don’t hold a CS degree will be quite another hurdle to overcome). Also, for full-stack Java developers and in the enterprise application development domain, you also need to know your front-end technologies such as HTML, CSS, Javascript, JQuery, AJAX with XML and JSON, etc. as well as the Java Technologies such as servlets, jsps, the Spring framework or J2EE or Struts, hibernate, Java Web Services and so on. Why is this the case for full-stack Java Developers? Is it just me or does it seem like the interview process for other web application developers are not similar to this?(Please correct me if I’m wrong but I know a lot of people who work using the in-demand front-end technologies + Node and their interviews are not focused on data structures and algorithms). Anyway, although I enjoy learning all of this material, I can only put in about 4-6 hours a day to improve my programming skills as I have to tend to my master’s program as well. I find it very overwhelming to sharpen all these skills while keeping up with improving my problem solving and retaining knowledge of data structures and algorithms (I use Cracking the Coding Interview as a review after learning the concepts) and all the object-oriented principles and key concepts for a Java developer. Even though I am slowly plugging away and I am on pace to have projects completed using the technologies I mentioned by my graduation date, the journey itself is very taxing. For those who went through a journey such as this, how did you manage your stress mentally? I mean I really do enjoying learning about all that I had mentioned but it seems like there is so little time in the day! Am I overthinking things? Any feedback is appreciated.


#2

If you can work on this 4-6 hours a day, have you tried to make a schedule for what you need to work on? For example, one framework for 45 minutes, then take 15 minutes to relax and reflect on what you just studied, etc. You can make a spreadsheet or build a small app. Building a small app for it can be practice on what your studying that day.


#3

Why is this the case for full-stack Java Developers?

Because there are high probability that you will work with those subject. Not all, just some of them, and your employer expect you to be ready to face whatever subject involved when you work with them. They don’t want to hire extra person or give you time to extra master certain subject.

Is it just me or does it seem like the interview process for other web application developers are not similar to this?

I think their requirements are too general, It feels like HR department made this requirement. IT department usually ask less but more specific than this.

For those who went through a journey such as this, how did you manage your stress mentally?
Am I overthinking things?

Yeah, it’s really stressful in the beginning. I face similar situation and find a solution that reduce my stress. It works for me so you might want to give it a try

Make sure to put your education first. No matter how much you like it, you can learn programming after you finish your study (without time limit)

If I have 4 hours to study, I spend my first hour figure out where I left yesterday and what I’m going to do now. Whenever I encounter difficulties I feel stress, I have less interest in solving it because my brain already tired.

So I divide my programming study into THINKING and DOING
Thinking is when you start your own project, divide it into smaller task and analyze it’s difficulty level
Thinking is trying to finish the difficult task
Thinking is making pseudo code about your task
Thinking is learning something new, and try it until you make a ready to use code
Thinking is where your brain works really hard
You can do thinking only when you’re fresh
I do thinking mostly in weekend and early days

Doing is finish your small task
Doing is implement your difficult task into your main project. (mostly copy paste, you already solve it during thinking session)
You can do doing anytime

Since I tried this, I rarely feel stress. I go home, take a look at my small task list, take a look at pseudo code, start working. Find difficult task, paste it from Thinking session.
Repeat it again…
Repeat it again…
Voila you finish your project


#4

Thank you for the responses. @alta9, I will definitely give your method a shot. I really agree with working on a lot of the THINKING portion earlier in the day or the weekend. Also, regarding Java development positions, I guess its just something that comes with the territory and I must simply accept that. One of the hardest things for me is that trying to find the balance between holding review sessions to retain the knowledge of data structures and algorithms + problem solving while improving my programming skill set through working on projects. Without projects, there is no interview, without a good understanding of data structures and algorithms and problem solving, I’ll most likely do poorly in a Java developer interview. From a logical standpoint, I feel that the ability to get an interview is more important so I have been doing more like a 80/20 split focusing on learning technologies and working on projects. In the end, It is very good to know that someone went through a similar process. I have friends and family who were in the same situation (career changers) and ended up completely overwhelmed and discouraged, therefore coming out of the same program without employable skills in programming (although some got jobs either as a business analyst or project manager). I just have to maintain a mindset that all the hard work will pay off in the end. Again, I appreciate the response!


#5

You probably know this already, but as far as “coping with stress” any form of physical activity(gym, running, sports, etc) will help release endorphin(feel good energy). This is vital to our well-being as coding involves countless hours in front of a computer. Good luck. :slight_smile: