Failing coding challenges :( Job Search Update 2

Job Search update for the Week of 11/30/20 – 12/6/20

Rather watch? Check out the video here

Monday – I attempted a coding challenge and I failed miserably i.e. I didn’t finish it b/c I was stumped

Tuesday – I turned it in, I ended up putting in comments about what I was going to do. On Friday, I officially found out I was rejected. This evening I was also a part of a panel that discussed finding a job after a coding bootcamp. I’m always happy to share my experience with that and this was a fun thing for me to do to take my mind off of my coding challenge woes I had earlier. Here’s a link to the interview if you’re interested.

Wednesday – I had a final interview with a panel of 5 people. I was not prepared for an interview with so many people and was slightly caught off guard. The first part of the interview was 2 questions from each person. Questions were over the process I used when I get a task, testing my code, dependency injection (which I couldn’t remember the definition of btw) and storing passwords from users. The second part of the interview was coding 2 questions. They did this process a bit different than I have seen thus far: Sent me a link to a question, I went to the link which had an IDE to code the question, they set the clock for 5 mins, after the 5 mins was up I sent them I link to my solution, then I talked over my solution. During my 5 mins, we sat in silence until I was finished. The second questions was more difficult than the first and they didn’t expect you to finish.

Also, on Wednesday, I filmed a podcast regarding my journey into tech and some tips as well. When it comes out, I will provide a link.

Thursday – I took it easy this day and did the hacker rank coding challenge – had to do with an api but I could not for the life of me figure out how to access the data. Later on that day, I went back and coded it and was embarrassed of the mistake I had made earlier…All I had to do was get the response and from the response access the array called data…super simple oversight cost me the job. 

Friday – Therapist appointment, yes I see a therapist…I have been for a year now. And then I had errands to run because my dad’s birthday was the following day and we were celebrating with cake!

Isn’t it cool?! Looks exactly like the real thing! The inside was lemon and tasted delicious

In conclusion, I’m realizing that I need to study more on backend concepts and algorithms, especially in a timed environment.

Modularization

In terms of the delivery of software.

This whole article references the book ‘The Pragmatic Programmer’ by Andrew Hunt and David Thomas – Definitely a good recommended read, purchase here: https://amzn.to/2GP04fB

Original Question

Will it take more or less time to get a monolithic block of software to the required quality compared with a system designed in modules? (source: The Pragmatic Programmer by Andrew Hunt and David Thomas – https://amzn.to/2GP04fB)

Definitions

Monolithic block of software – “A monolithic application is self-contained, and independent from other computing applications. ” (Source: https://en.wikipedia.org/wiki/Monolithic_application ). Example – Some personal finance applications

system designed in modules – “is a design approach that subdivides a system into smaller parts called modules or skids, that can be independently created and then used in different systems” (Source: https://en.wikipedia.org/wiki/Modular_design )

required quality – In this instance it refers to the requirements that were set forth, probably by either a team within the company or end users themselves.

Answering the question

I believe it will take more time to get monolithic software to the required quality compared to a system designed in modules because it’s essentially a program that works together. Where as a system designed in modules has code that can be reused – I think of this an application where a user has a login and then they are redirected to a dashboard; authenticating a user can be used within another part of the application or other application entirely and more importantly, one developer can be working on that part without having to wait for another developer to finish one part of the application.

I’ve been taught that it’s important to make code that is DRY (Don’t Repeat Yourself) and that can be reusable for another application. In the case of working in modules, it’ll be easy to start building out the login system since I’ve done it before for another application.

Providing an example

I do believe there may be a time and place for monolithic software and while doing some research I found this example of a monolithic application:

Breaking Down a Monolithic Software: A Case for Microservices vs. Self-Contained Systems

In this example, note that the website started out as a smaller application controlled through one stream and has since grown quite large and is not scalable on the platform it is now using. This leads me to believe that ultimately all applications that start out as monolithic and then grow that they should then be moved to using modules.

Resources

Explaining what monolithic is: http://microservices.io/patterns/monolithic.html
If you prefer charts and graphs: http://www.codingthearchitecture.com/2014/11/19/what_is_a_monolith.html
I found this to be an easy to understanding of monolithic: https://www.sam-solutions.com/blog/microservices-vs-monolithic-real-business-examples/