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/

Being an Intern at nearly 30 years old

Determining to take the internship

When I was originally contacted about being an intern, I did what I normally would do and did some research about ‘being an intern at 30’. I found a couple articles, one in particular https://www.themuse.com/advice/why-i-took-an-internship-at-age-30, ultimately helped make my decision.

A couple of things stood out to me from that article. 1. This person was a career changer and having an internship was the best way to get a sneak peak into the industry but for me my internship was an opportunity to learn more and become a contributing member of the engineering team. 2. This person also worked an unpaid internship – Mine was paid so I said well I’m already one up from this person so why not?

Starting the Internship

I must admit, I felt a bit silly for joining an organization as an intern. I thought the title was beneath me although nothing else, except for the Web Developer job I had just got laid off from, justified me to a better title. Nevertheless, I went in with an attitude of gratitude – I decided to soak up all the knowledge and learn all of the things! A little seize the opportunity if you would.

Once I was introduced to my teammates and the days grew on I realized they really thought I had just graduated from college recently. I still remember the looks on their faces when I told them I graduated back in 2011. It made me wonder, why do we make assumptions based on titles?

Take Aways

We have to stop assuming things about people when we don’t know their situation or what they are attempting to accomplish.

Try something different – Yes, my family thought I was crazy for being an intern at nearly 30 but I saw it as opportunity for growth.

Which leads me to the final take away – Don’t worry about what others think. Focus on your motive for why you want to move forward with something not what others are thinking about.
When all else fails, be bold, be great, be awesome and be fearless no matter how uncomfortable you feel!

Not Everyone Has a Computer

This past week, I decided to help out with the after school program for CodeStream Studios – where I also help out with some of the documentation they require for their curriculum time to time. I used to teach last year and came to realize that many students do not have access to a computer within their household.

I think it’s a common assumption that everyone owns either a laptop or a desktop machine in their home. It is a common reality, especially among most of these students, that they don’t own any machine as such. Many students have a phone and that’s where most of their interaction with a keyboard is. According to this article, [Pew Research Article – Yes, it’s old I know, but it’s still facts] there are in fact 25 million households in the United States that do not have regular internet access, let alone have a computer in their household. Now-a-days it seems ordinary to have access to the internet and to use a computer within the comforts of your own home.

Let me make one thing clear – If you are among those who do have internet access and a computer of some sort within your household, consider your self grateful!

So…what about the students who don’t have access to a computer in their household?

Well, they rely on school computers and go to the library to use a computer which is surprisingly what most of us did back before computers were in every household (for me that would be the early 90s). Even while in college, I recall peers going to the library to complete papers or complete homework assignments. Recently, my niece accidentally threw away a 4 page magazine article that was given to her by her teacher to complete her homework assignment – She was absolutely devastated. I, on the other hand, furrowed my eyebrows at her reaction and told her ‘Don’t worry, everything is online, I’ll find it for you’. Within minutes, I found the same article written online and she was overjoyed. Later on, my sister called to my attention that some students depend on that 4 page magazine article in order to complete their homework since they don’t have access to a computer at home and aren’t able to look things up in a blink of an eye. I immediately understood why my niece felt the way she did – She does have access to a computer and internet however, she doesn’t fully understand how she can use it to find information online. With that being said, put yourself in her shoes for second (with the understanding that you make good grades and try to follow most of the directions when given) – Imagine realizing you misplaced the article you needed to get your homework completed. Full panic sets in as you realize you won’t be able to complete your assignment and will ultimately receive a grade that you aren’t proud of.

Keep in mind that some may not have access to the same resources as you do and be sensitive to it. If you do have an old laptop that is still performing relatively well – consider letting someone else have it to own.

Fail Fast at Coding

Throughout our lives, we continually told to succeed. Many of us were never told to fail. Well, that’s what you should do, especially when you are learning to code. Coding isn’t easy to do and it’s definitely not for everyone [http://www.blog.tthompson899.net/2017/06/02/coding-is-easy-everyones-doing-it-why-do-you-want-to-learn-to-code/] but when you take on the challenge of learning to code [http://www.blog.tthompson899.net/2018/01/02/how-to-learn-how-to-code/] you should take on projects that you aren’t comfortable with so that you are able to fail faster while improving your skillset.

Many people stay in the comfort area of coding when they first start out – They learn HTML and CSS, which is absolutely okay HOWEVER, don’t stay there longer than needed. It’s important that once you grasp a concept that you move on to another concept that’s more challenging than the next and add it to the things you already know.

Let’s say you do know HTML and CSS and have built a basic website with it – Awesome work btw! A friend approaches you to build them a website and host it for them. This would be considered a challenge for you because you haven’t hosted a website before. Consider that your golden opportunity to take on a new challenge and potentially fail at it. Hey, Rome wasn’t built in a day, you can’t learn everything at once. This is why you should take on new challenges with the expectation of growth, be positive about the unknown things. Back to my example – You may fail at the first attempt of hosting your friends’ website BUT you tried your best and didn’t give up, consider that a big win! Take advantage of the wealth of information on the web to help you succeed the next time. Eventually, you will end up with a win as long as you keep trying.

——————————————————————————————————-

Watch the youtube video here:

How to Learn How to Code

With the New Year coming around there always seems to be an increase in those that want to learn how to code – Which I think it’s awesome! However, don’t just learn to code because it’s the ‘In thing to do’ (Read more about that here: http://www.blog.tthompson899.net/2017/06/02/coding-is-easy-everyones-doing-it-why-do-you-want-to-learn-to-code/
). At any rate, I decided to make a list of ways one can teach themselves to code. This may come off as a surprise to some who think that I only learned to code at a bootcamp, in fact, my story is a bit unique in that I also took Computer Science classes in college as well as did some self teaching in between college and the boot camp (a span of 5 years).

Here’s some ways to learn how to code:
Websites to learn how to code
Codecademy
Treehouse
FreeCodeCamp
Youtube Videos that teach code
Traversy Media – https://www.youtube.com/user/TechGuyWeb
Chris Hawkins – https://www.youtube.com/user/noobtoprofessional
Telmo Sampaio- https://www.youtube.com/user/Telmo87
Tutorials on the websites of languages and frameworks
Depends on what you want to learn
tutorialspoint.com usually has a tutorial for any language

I recommend using a mix of FreeCodeCamp, youtube videos and tutorials online. When doing tutorials online, I’d start at a website for a language and going through the set up process and then go to the tutorial on the website. Follow along then do the tutorial again or an idea that you came up with and do it without looking at the directions. After that keep adding to your skillset by viewing more tutorials and creating something that you want like a website or a web application.

Check out the video below to view my video on youtube.

I Got Laid Off

It was all going well and then I got the surprise that I could have not expected…

My company had to let me go – I was called in the office with my two managers and was told I was being laid off and I wasn’t the only one. I honestly felt crushed especially since I had just signed a new lease to an apartment a few days before, the timing couldn’t have been worse but it was out of my hands.

I knew once I saw the message that read ‘Tiffany, can you speak to me in my office for a second’ that things wouldn’t go well. They weren’t happy about me leaving and would have liked me to stay but their hands were tied. They told me that this had nothing to do with my performance. They even stated they were proud and surprised at me coming in and getting to work so quickly on the code base. I appreciated the kind words and was relieved this had nothing to do with the work I was doing. After thanking them for the opportunity, I gathered my things, spoke with my other co worker and headed out the door one last time.

Once I got home, I decided not to do anything the rest of the day and gather my thoughts to prepare myself for the next stage in my life. That evening, I then decided to update my resume and LinkedIN. Later on that evening I made a call to the apartment complex letting them know I was unable to lease with them since I had just got laid off. I was told I would still have to pay but that didn’t seem right with me so the individual said he would relay this info to the manager. I asked for the manager’s email as well so we could discuss it further. That night I emailed the manager.

The following morning I received a call from the manager that stated that the lease agreement is contingent on my income and since I no longer am employed that they would go ahead and let me out of it. What a relief!

I also was removed from the github repo from work and my part time job as well. Everything seemed so final – Plus, it looks like I haven’t been working in git since I was no longer apart of the repo at work. I told myself that I have to start over and continue to build up my github again with personal projects. I’m still trying to get over the dizziness of being told I no longer have a job.

Nevertheless, I learned a lot from the work I did while I was there and am forever grateful for the people who gave me my first Web Developer position. It’s back to the daily grind of finding a job for me which is going to be a tough one since its around the holidays but I will make it through. I’m also utilizing this time to brush up on my skills in PHP and Laravel.

Feeling Pretty Nostalgic

I decided to randomly visit the website of a school I used to teach at before I started my new job this July to see when Dallas ISD schools started and was welcomed by an image that had the headline below.

Me presenting 3rd graders with their awards at the end of the school year

I’m not going to lie, I started to think of all sorts what ifs and doubts: What if I was still there? What if I kept teaching and decided not to go back to the corporate world? Should I still be teaching? Did I make the right decision to leave?

Ultimately, I chose a life where I wouldn’t have to worry about income and to just live life which is all well and good but I think about all the blogs I’ve ever read that stated that you should just be happy. Well, I have a difficult time living in the moment so teaching part time was tough for me to really enjoy every day. For me, finding stability was important at that time, it meant living comfortably knowing you’ve got a suitable paycheck waiting at the end of each pay period.

With school starting back up, I’m starting to miss the kids. This is one of those crossroads you take in your life when you have a big decision to make. It’s really tough but I knew staying would not help my technical skills increase to an advanced level and allow me to be where I would like to be my career.

At the end of the day, I know the kids will have a suitable instructor to instill some great knowledge and have fun learning new things.

Part Time VS. Full Time Coding Bootcamps

Fortunately, I’ve had the opportunity to be a part of a Full Time and a Part Time coding bootcamp. I work as a TA at a Part Time Coding bootcamp and last year I attending a full time coding bootcamp. 

Here are some things I’ve noticed as being differences between the two. For both of these, they were the first cohort in Dallas that I was a part of.

FULL TIME

Basics – the bootcamp itself:

  1. You definitely have to quit your job – Which is pretty risky and I only recommend if you truly love coding and have had some kind of experience with it in your past in some way.
  2. You have more time to code – Because this is your full time job now, you can code all day if you want and you should 😉
  3. There’s definitely tons of material that you learn but its consistent and is presented in a way that builds upon each new thing.

Content:

  1. There’s a final exam each month in which the instructor gives you a score based on the requirements and your code – There’s a checklist of items they have to grade upon.
    1. ‘Homework’ for the bootcamp is the assignments for each new section that you have to go through.
  2. I liked that there were videos that taught you things as well as videos that walked you through the exercises.
    1. I feel there was more push to go find out more info on your own and they definitely had more resources to learn more things.
  3. The platform – Dojo had a platform where they presented their info, you had a login and they had various sections based on the stack and within each stack were assignments/videos to watch and resources

Class:

  1. Class sizes were relatively small in the beginning cohorts, I’m not sure what it’s like now but we roughly had about two hand fulls (10) of students in our cohort but started with about 15 or so.
  2. Rented space downtown – Open office area. We had a monitor to connect our laptops,  free fruit, snacks, coffee and at that time we could make reasonable requests for snacks that would be ordered for us as well.
  3. Able to connect with others in cohorts behind them
  4. You aren’t required to come in on the weekends (it is encouraged by all to be there during the weekends, I just worked at home on the weekends) and there’s no instruction on the weekends.

Career Services:

  1. Unfortunately was nonexistent for my cohort since we were the first ones to graduate. Later on, they did hire someone specifically for the Dallas area but while I was there, they flew out people from California which is a totally different market than Dallas.
  2. We were told to focus on coding during the bootcamp and focus on finding a job when you’re done which I think is important but really counterproductive when you still have to prepare your resume, do mock interviews and do personal/online branding. It takes time to do these things I don’t think that was the best advice.

Student Services:

  1. Nonexistent here.
  2. No tutoring 🙁
  3. Surveys – Which were strictly for expressing concerns about the material, instructor’s/TA, etc.

FULL TIME

Basics – the bootcamp itself:

  1. Relatively the same price as a full time bootcamp but it’s spread out for 6 months. This particular bootcamp is affiliated with a University which can look impressive in some ways on a resume.
  2. You have less time to code throughout the day because more than most likely, you still have a full time job.
  3. You get to work while doing the bootcamp albeit at a job you don’t favor but at least you have a job 😉

Content:

  1. I feel like material presented at this bootcamp is kind of all over the place and some it could be done away with to focus on bigger items that are employable for the consumer.
  2. Homework is due every week which makes it tough if you’re going to school and working at the same time.
  3. There are videos but only after the home works.
    1. There are resources slacked out after each of the classes.
  4. Content here is spoon fed to the student so we as Instructional staff hand out the material to the students on the day we get to that particular lesson.
    1. Because it’s spoon fed, students can move ahead to learn the next thing if they master a concept already.

 

Class:

  1. Class size is relatively large – We currently have about 20 active students and we started with about 30
  2. Since its affiliated with a college, you are in a traditional lecture room. Occasionally, the students would have treats given to them but for the most part they are on their own since its dinner time when they have class.
  3. Able to connect with cohorts especially since there are always two cohorts going on at the same time [M/W] and [T/Th] they join forces on class on Saturday.
  4. You have to be in class every Saturday

Career Services:

  1. Career services is present and accounted for during the entire cohort – Also helps that the students have career services hw during the entire cohort they have to compete, they also have time to schedule in mock interviews throughout the cohort and perfect the resume.
  2. Career services is in constant contact with employers and a couple of students have taken a liking to freelancing.

Student Services:

  1. Had not heard of this before the PT bootcamp but this person keeps track of the overall well-being/health of the student. It’s important that you stay focused and this person understands the challenges you face and comes up with solutions to help you stay on track.
    1. You also schedule one on ones with this person periodically throughout the class to assess any concerns.
  1. Surveys – Expressing how much time you’re spending with the material and how the information is being presented to you.

 

Probability of getting a job – TBA

A Year After Coding Bootcamp

Watch the Youtube Video:

It’s hard to believe its been a full year since I graduating Coding Dojo. I remember feeling terrified of leaving my secure corporate job of three years and not knowing what will come about after graduation. I remember applying to multiple jobs and having interviews in hopes that one will give me an opportunity to prove what I already know – That I’m a team player who loves to code and wants to be apart of something that’s bigger than me. I had some set backs along my journey, ran into some interesting people and learned a lot.

If you follow my tech journey at all on Youtube – You’ll know that the first job after graduating the Dojo was not one affiliated with coding at all and therefore did not last long. I later moved into a teaching gig where I taught grade school kids how to code and introduced it to many of them. You can view the full video series here:

Teaching gave me the opportunity to really focus on what I love doing most – coding. Teaching was a part time job – which meant I had some down time which is why I started my Youtube channel. I always wanted to post videos but had a difficult time settling on a topic I’d like my channel to focus on – with my experience teaching code I thought it’d be a great idea to share my story and teach code. I later became a Teaching Assistant at SMU’s Full Stack Coding Bootcamp through a company called Trilogy. I still have to shake myself from reality knowing that individuals reach out to me to help answer their questions – Of course, I don’t know everything and I never claim to but it’s always great when we can research a question and come up with possible solutions together. There’s a great burden and responsibility with helping others – while I’m always up for a challenge, I never forget that others depend on me to always be honest and truthful along the way.

So, here I sit outside my house in a lawn chair enjoying my fourth of July day before starting my very first Web Developer position tomorrow writing down these thoughts to you in hopes that you’re encouraged about your own journey through life. I have to say that although my journey is not like everyone else’s and may not end in some heroic tale of victory – I am proud of how far I’ve come after a year. It’s also important to note that the majority of my decisions I’ve made about my career this past year had nothing to do with code directly – It dealt with people and more often than not, it had much to do with my future.

Although I may not have the most flashy Web Developer position, I know it’s a far cry from where I was a year ago and I know the possibilities that come along with it. The beginning is just starting for me and I’ve a long journey to complete before the ending. If you happen to be looking for work as a developer or any other position where you’ve made a career change – Don’t be afraid to dial back to where you came from to get your start or to take a job that may not be your dream job. What is a dream job anyway? That’s another post for another day 😉

I plan on keeping up with my progress mainly on Youtube that will allow me to make weekly and monthly updates. I do want to add a disclaimer: I’m moving to Full Time employment in the corporate world, still have my TA gig at SMU and plan to still help out when I can with my now former employer with curriculum for students – Needless to say, I’ll be busy but I’ll try to fit in time to record when I can.

Thanks for reading & Keep working on your goals!

 

Finding Time to Code

Juggling a full time job, possibly school, family and friends is tough as it is but when you add in trying to learn to code – It may seems unrealistic to find the time. Here’s some helpful tips so you continue to learn to code throughout the day and maintain a healthy work/life balance.

  1. Code before work – I know, who wants to wake up that early? However, if you are truly passionate about changing careers into a developer then this may be a good option for you. I recommend gradually waking up a earlier until you fall into a routine. You can get in a good 30mins-1hr coding done in the morning so that when you are actually at work you can focus.
  2. Utilize your lunch break/Work breaks – Even if you only have 30 mins, you can practice if/else statements, algorithms, or read a blog about coding to keep exercising that muscle. I recommend knowing exactly what you wan to focus on before lunch so you can be prepared.
  3. Evenings – This is another tough one for some because after a full days work you just want to relax however, spending about an hour firing up Team Treehouse/CodeCademy/FreeCodeCamp or whatever resource you use for learning will be helpful to keep your mind fixed on coding.
  4. Weekends – This is a great time to really buckle down on your learning! Spend a few hours during the weekend building a website or application or learning a new language. It’s important to note that you may want to get the bulk of your coding done during this time because you have larger chunks of time to finish solving majority of your coding problems 😉

Try out some of these techniques and let me know which works best for you!

Check out the Vid on YouTube: