What it’s like to be in a Tech Bootcamp, Part 3

What it’s like to be in a Tech Bootcamp, Part 3

My First Impressions with Flatiron School

A bit more than a month ago, I wrote this post to update my status on attending bootcamp for Software Engineering and Web Development. I started at Flatiron School that same week and I loved it. They have you jump right in but provide ample support in case of shell shock. I especially enjoyed that right away we’re developing exclusively in our own environment so not only are we practicing code but we’re utilizing the command line (or CLI) and various other tools. It wasn’t long before things got challenging but they offer support via slack and live pair programming sessions if you’re really stuck, plus there’s always the network of peers at your level and beyond that are willing to help. Resources are plentiful.

For me, personally, it wasn’t long however before I realized that the job I was working to pay for this bootcamp at the tune of $1,200/month was going to interfere with my ability to learn. I was on my feet 9+ hours per day and that was wearing me thin, but on top of that, there was a factor of OT and the start of the fall semester looming in the future. My ability to code consistently at the level of effort I felt necessary was minimal and the stress piled up. I decided the timing wasn’t right for this bootcamp because frankly, I didn’t want to half-ass it and that was starting to happen after my fourth week in the program. So, not for lack of interest, I have withdrawn from the amazing program at Flatiron School.

The decision was made easier by the discovery of a work benefit that was previously unbeknownst to me: free college tuition.

 

College Ahead!

college lecture
Photo by Dom Fou on Unsplash

While a lot of folks insist a degree is not required to get a job in tech, I don’t think anybody would deny they can be beneficial to have. When I got laid off from Project Management in the outsourcing industry I tried without result to break into tech as a PM and, despite my years of experience on technical and tech-adjacent projects, I was told time and again that candidates with a degree were given preference. So, for me, accomplishing a degree in tech is a matter of principle and addressing obstacles head-on.

I’m incredibly grateful to the leadership at Walmart to allow their employees to pursue the acquisition of in-demand skills and schooling for no cost while they are employed with the company. This is something that the outsourcing companies I’ve worked with never offered and I believe it will have a tremendous effect on the lives of those who choose to engage those benefits. I never would’ve expected my summer job to help invest in my future career.

There was very little barrier to entry, I just had to be a U.S. employee (part-time or full-time) and get accepted to a participating school/program.

As of this week, I am officially participating in the SNHU Computer Science program with a concentration in Software Engineering. Anticipated graduation: 2024.

I feel tremendous relief not only about the tuition assistance but the slower pace. I found I was stressing myself out and bringing my mindset to a low point by trying to rush into tech when the pandemic hit and I was laid off. This decision feels right to me, I can code 4–8 hours a week before work and progress in school after work and on my days off and I like that.

laptop and phone on desk

Thanks for reading! If you enjoyed this article…

You can expect a post from me at a minimum of every two weeks on topics related to my journey and if you have any questions that I’m not answering please don’t hesitate to reach out to me (comments, DMs, tweets, etc.)

What it’s like to be in a Tech Bootcamp, Part 2

What it’s like to be in a Tech Bootcamp, Part 2

My Motivation for Becoming a Software Engineer

Difficult Roads Lead To Beautiful Destinations

5 months ago, I wrote the introduction to this series highlighting my experience with YPracticum Web Developer Boot Camp. I was about to broach the intensive JavaScript sprints that spanned across 6 weeks and I could not have been more excited!

Then…

Imposter Syndrome and life got in the way.

Why am I telling you this?

Because I’d like to start fresh and share my motivation on why I am pursuing Software Engineering.

Shortly after I made that post, I became overwhelmed with my school assignments and lower-than-expected grades. This lead to a feeling of deep impostor syndrome.

Then, I had a challenging health issue pop up. All these factors culminated to prompt me to take an extended hiatus from YPracticum.

During my time away from the console, I spent some time introspectively beating myself up and questioning my dedication. I concluded the following:

  1. I have a passionate interest in technology and computer science that has not gone away. Before my career “diversion” (as I call it) in the BPO space, I was enrolled in a computer science degree fresh out of high school and I loved it.
  2. The creative and analytical sides of me converge on the problem-solving challenges that learning to build with code provides. It’s been all I’ve thought of most days, trying to overcome hurdles in online lessons and brainstorming ideas for sites and solutions of my own.
  3. There seems to be inherent security and a certain lifestyle that a job in tech can offer and that is positively appealing to me. It is not possible without hard work and grit, as to be expected.

My Decision to Leave YPracticum

Goodbye Friends

After my hiatus had run its course and I decided to re-enroll in boot camp, I had lost my scholarship status.

Given that I would be expected to pay installments or upfront for my education experience, I considered the opportunity seriously and decided to evaluate other boot camp offerings for comparison.

Before I had won my scholarship to YPracticum I was going through the enrollment process with Flatiron School and a few other options but I backed out when I found out about the scholarship opportunity.

Now that I would need to consider my investment in material terms other than time, I put all options back on the table and eventually went with what I thought would provide the most value: Flatiron School.

The career services offering from Flatiron School coupled with the results I read in their public jobs reports convinced me the value was there for the price point.

Looking Ahead with Flatiron School

I spent the rest of my Spring focused on college and my health and have completed June with a focus on the prerequisite work for the Software Engineering FLEX program with Flatiron starting July 5th.

There are key milestone projects throughout each of the program’s 5 phases so I will cultivate a portfolio in my learning process. There will be significant networking opportunities and I plan to learn in public through my blog and Twitter platforms.

Men walking through pathway
Photo by Tom Parkes on Unsplash

Thanks for reading! If you enjoyed this article…

You can expect a post from me at a minimum of every two weeks on topics related to my journey and if you have any questions that I’m not answering please don’t hesitate to reach out to me (comments, DMs, tweets, etc.)

What it’s like to be in a Tech Bootcamp, Part 1

What it’s like to be in a Tech Bootcamp, Part 1

This summer, in August, I won access to a 10-month web development bootcamp through Practicum by Yandex for completely free; thanks to Danny Thompson(@DThompsonDev on Twitter)! This is my humble review of experiences thus far in the program.

First, I should mention that I am technically not at the 6 month mark in the bootcamp. Due to unforeseen life issues I had to defer my official start with YPracticum until their 11th cohort which began in December. They were incredible helpful and supportive of my situation as it was unclear when I’d be able to begin at first. Their program allows for two 1-month long hiatuses as needed in your learning, so I chose to front load my hiatuses as I new once I overcame a few things I could be wholly committed. Again, I can’t emphasize how flexible they were – definite good first impression.

woman in tech bootcamp in front of laptop

How it works…

YPracticum has a structure to their bootcamp that I expect is relatively standard from the research I’ve done. There’s an introductory and free coding prerequisite that showcases the flow of the bootcamp while covering some beginner level topics with HTML and CSS. You get access to a Slack workspace in order to discuss any questions you might have and to address any potential bugs in the system on the web. Their team is supportive and responsive for sure.

Once you complete the intro course you’re prompted to purchase the bootcamp if you wish to proceed. In my circumstance, having one the bootcamp in a giveaway, I was redirected from this prompt once I put in the e-mail I registered with so I can’t speak to ease of use in signup for the payment section. Once you’re assigned to a cohort, a Community Manager (who is responsible for fostering a positive experience and soliciting feedback and organizing community events throughout) will reach out to you via Slack to pull you into your respective cohort’s space. There’s some introductory documentation in a Notion manual that will help you acclimate to the flow you can expect.

man and woman in front of laptop at tech bootcamp

YPracticum applies an Agile methodology approach to the scheduling of the bootcamp activity. This means that the material on their web platform is organized into sections called sprints and you follow a sprint schedule for all your work and projects. It’s generally a two-week period where you’re expected to study the material and begin work on the project by the end of the first week and allowed opportunity to revise and iterate on the project to meet the brief standards in the second week.

I spend 20-25 hours per week working on bootcamp in addition to my own time studying other dev-related topics outside of this along with a full time college student schedule (CS degree 🤓). It’s manageable for sure if you’re working full time as long as there is a reasonable degree of discipline which you possess. My advice is start early so you know you won’t miss the deadline and get it out of the way, 1-2 hours a day goes far!

It’s also worth mentioning that in the code review process you’re allowed four attempts to pass the specifications of the project brief; so, it’s worth taking notes when you’re reviewing the material and completing the examples before you start the project. The reviewers are through but fair in my experience.

Where I’m at…

So far, being 2 months into the actual material and 3 projects completed I feel good about my decision to go with YPracticum over handing out significant cash for some of the other options on the market at the moment. The Community Manager set the stage appropriately for the whole experience and the other staff involved in the learning process are experts in their field, knowledgable and reasonably responsive when they are called upon (some, if not most, are international so you may not get an immediate response but it hasn’t set me back at all). You get access to a tutor that acts as a group guide, doing live coding examples relevant to each project sprint and the two that I’ve met have been US based, so while staff may be across time zones – the ones you interface with most often are US based from what I can tell.

The cohort I’m in is comprised of international students across many timezones so sometimes peer to peer communication is a bit asynchronous but there’s a good blend of folks in my time zone (or working when I’m working, if not local geographically). It’s been an invaluable experience for me to engage with folks at my level of learning and is a pleasant bonus for a remote bootcamp that was intended to be 100% online from the start.

The projects have had an increasing level of difficulty as I’ve progressed through the material, but it’s not been such that I feel they are outside of what should be expected once you’re through studying. It’s reasonably challenging, in a good way. The last project I did was on responsive design, it has a reputation of being a more involved project but I really enjoyed the challenge and review process.

group of people collaborating around their laptops

What’s next…

Sprint 4 starts the 6-weeks of JavaScript study before frameworks and other backend technologies are introduced and I couldn’t be more excited. I plan to begin a series on my experience in this bootcamp and will definitely share another post after the JavaScript immersion has taken place.

Thanks for reading! If you enjoyed this article…

Feel free to comment below and share what you liked most, or any questions you have that you’d like me to answer in my future posts on this topic!

Or, feel free to subscribe to my RSS feed to stay current on my writing.

Interested in my freelancing skills? Sign up for my company launch newsletter or contact me below!

2021: My Year of Coding Productivity

2021: My Year of Coding Productivity

Intro

Over the holidays I got busy with some new free software for productivity and planning and I made this thread post on Twitter:

I decided to expand on it a bit here to start the New Year.

Process with Miro

In my web development bootcamp, right as we got started we had an ice breaker activity collaborating through the whiteboarding tool Miro. I liked how easy it was to use for a group of two dozen people and it seemed like it had the functionality I was looking for (to build a timeline), so I looked it up. It was free!

I downloaded the desktop version for my Mac and signed up; a painless process that took no more than five minutes. Once I was registered I did some looking around at the templates, there’s several that appear helpful in the development/project management space (Kanban, wireframing, User Story Maps, flowcharts etc) but the ones I used for my planning were labeled simply as “Timeline” and “Timeline 2”. They’re quite easy to find; after you begin to create a board you can just start typing “timeline” in the search bare and they’ll pop right up!

I found that the UI was intuitive and I haven’t looked up any tutorials for it as of this post, I’ve done everything by touch and feel and came up with the below for my New Year’s goals in development.

timelines in Miro app

The top chart (with the columns) is the “Timeline” template and my “5 year plan”. The bottom line labeled “2021” on the right is the “Timeline 2” template and my phased approach to this year’s efforts.

Timeline Structure: Why 5 years?

As mentioned in the caption, the approach I took was to break out a “5 year plan” with the “Timeline” template. I’m honestly not sure that I decided to do this consciously, so much as I just had the cliche interview question in my head when I was thinking about goals. In any event, now I can be honest and tell interviewers that I really do have a five year plan! 😎

https://images.unsplash.com/photo-1491336477066-31156b5e4f35?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb

I knew I planned on getting more specific with 2021, just because I had a lot of ambitions I wanted to document and it was the closest in the timeline so the goals were more clear. Before I broke down my 2021 timeline in the “Timeline 2” template, I mapped out the next 5 years across the following sections:

-Goals

-In Progress

-Completed (nothing there yet!) and;

-Stretch Goal

Once I had the high-level view more or less finalized, I decided to color code 2021 with consideration to the following categories:

  1. College
  2. Blogging
  3. Coding Languages
  4. Learning Concepts and Skills
  5. Freelance Projects

When I was building the high-level view I was starting to run out of space in 2021, which is another reason I built out more years. This allowed me to spread out some of the goals as a way to ensure I didn’t take on too much this year. I tried my best to keep 2022 onward limited to about 20-30% less tiles so that I had some breathing room for life’s circumstances, but I’m a bit of an over achiever😅🤷🏻‍♂️

Goal Vision

A big factor I’m trying to incorporate into my process/life/structure is to #LearnInPublic. Because of this, I decided to make a publishing target for my blogging activity.

When it comes to my coding efforts specifically, I started on the self-paced study path then, enrolled in bootcamp right after I started university for Computer Science. You could say I’m taking the “shotgun approach” now! Because of this varied study path, I have many languages I’m going to try and experience.

I chose my core tech stack based on the bootcamp curriculum since that’s more focused to current trends, is ongoing for the next 10 months and has less breaks (than university). We’re studying the MERN stack.

https://images.unsplash.com/photo-1561736778-92e52a7769ef?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb

The extra languages are coming from the courses I know I’m taking this year for university, but I had some personal interests that I’ve incorporated into 2022 and onward as an effort to stay fresh and versatile post-bootcamp.

In terms of blogging, I write personally every day in a journal and I truly enjoy it. That said, I started small for my blog post annual goals just based on what my time commitments look like between university and bootcamp. As those factors layer off, I plan to step up my productivity stretching from a post every 2 weeks at the start, to 1-2 per week near the end of the 5 years. Some of you may find that minimal, but that’s the point. I wanted to be sure I could meet (and maybe exceed) my goals starting out; otherwise, why try?

Workflow and Implementation

Many wise folks have said much more memorable things about the benefit of planning and preparation, so I will spare you my witicisms. Just know, that I agree with the advocates of being prepared. That said, how will it get done?

I use other tools in my workflow to help me break down this year’s goals to a monthly/weekly/daily level. Specifically, I have a card for each month built out on a Trello board (Kanban-style). If you haven’t heard of Trello then check them out here – I’m using the free desktop version just like with Miro.

Now that I have my months fleshed out with weekly goals in a card (checklist feature in the app), every Sunday I break out daily cards to plan my week’s efforts. Each day gets a time deadline to have all the checklist marked complete.

https://images.unsplash.com/photo-1518976024611-28bf4b48222e?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb

For my daily workflow, I’m applying the Pomodoro methodology for deep work targets and doing that in conjunction with my calendar. I have a routine I try to follow each weekday and a routine that is unique to each Saturday and Sunday.

I track my time with a combination of a manual Pomodoro timer on my phone and the use of Toggl to categorize where I’m spending my time. Then I compare it to my planned routine.

I’m not using any tool for these routines other than manual blocking time in my iCalendar, but if you’re interested in other tips/tricks/tools for productivity have a look at this post on Medium. I’m considering building my routines into an app that’s recommended from Ro, the author, who writes about it there.

Toggl Daily Timer

I compare my time per category daily, but Toggl will e-mail you a weekly report as well. There are paid versions, but what I do is all free!

Sunday Calendar Routine

I compare my time per category daily, but Toggl will e-mail you a weekly report as well. There are paid versions, but what I do is all free!

As you can see above, I track my break time in part due to the Pomodoro methodology which emphasizes 25/50 minutes of deep work followed by a 5/10 minute break (depending on preference mostly) and then every 3 or 4 Pomodori (the term for more than one Pomodoro cycle) you take a longer break (maybe 25-30 minutes). The other reason I track my break time per day and plan a rest day is simple: if I didn’t plan it out then it wouldn’t happen! Have I mentioned I like to over achieve?😂

Conclusion

In 2020, I quit my job and decided to make learning to code my new career and the efforts therein have become my new job in the meantime. Have I always been this dedicated and focused? Absolutely not; it’s necessary for me to have livelihood supported by work in tech.

Will this all work out as it’s planned? Also, no; but, that’s not my point in doing all this. Being prepared to reach my goals also means being prepared to make mistakes. If I didn’t plan out what I wanted to accomplish then I wouldn’t know what I can say yes or no to when it comes to the use of my personal time. This process gives me peace of mind and that’s hard to come by.


Thanks for reading! If you enjoyed this article…

Feel free to comment below and share what you liked most, or any tips you have from your own productivity workflow!

Or, feel free to subscribe to my RSS feed to stay current on my writing.

Interested in my freelancing skills? Sign up for my company launch newsletter or contact me below!

Coding Journey: A Year in Review, 2020

Coding Journey: A Year in Review, 2020

2020 has been a year of infamy for many, you know this even if you’ve been living under a rock. Despite the tumultuous current events, I’ve been privileged to have quite a successful year. Today’s post is a reflection and goal setting exercise for me as I’m recently recommitted to the “learning in public” method of self improvement; specifically to learn coding (web/app development), design and earn a Computer Science degree.

https://images.unsplash.com/photo-1604440976912-8cc547001994?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgbCrumple this year up and let’s toss it!


 Milestones and Productivity

This year I achieved a significant milestone in my recovery: 3 years sober. I wrote about it here.

This is probably my second greatest achievement, though; my first being that I decided to quit my work from home call center job to pursue a full career change to web development and design. Then, third would be college.

Quitting my job was a scary leap for me to take but I did not do it without support. I had expressed to my closest friends and family that I was interested in going back to school and getting into the tech field for years, as recently as summer 2019. When I told the group chat that I was unhappy in my job and routine and was considering quitting they were receptive and cautionary. Nobody told me not to, but they said a big factor to consider was how I would care for my bipolar diagnosis and medications without health insurance.

Nonetheless, my mind was made up. So I looked into the price of my medications without insurance and was pleasantly surprised. I had some money saved up (albeit minimal) and no housing expenses as I had already moved back in with family, so I decided to set things in motion.

In April of this year I was free from my employment and felt immediately weightless and unburdened. The free time I’ve had since then has been incredible.

https://images.unsplash.com/photo-1503266980949-bd30d04d0b7a?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb Hooray! 🥳
I was already enrolled in college for business and my initial plan was to finish that degree and learn coding on the side so that I could spring board from my management experience in business into the tech field and then land either a Technical Project/Product Manager role or maybe Quality Assurance and Testing.
Then, I decided within the second month that I wanted to have a more active role as a builder and that a Developer/Engineer gig was my goal. So with that, to cover my bases I switched schools and majors to focus on Computer Science.

The feeling was elation. I had originally went to college for CS right out of high school and set that aside for a management position in business. It was comforting to feel like I was literally “back on track” with some of my early adulthood goals.

On top of that feeling, near the end of the summer I actually won a free ride to a 10 month web developer bootcamp! I couldn’t believe it!

https://images.unsplash.com/photo-1533227268428-f9ed0900fb3b?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb

Such satisfaction! 😃

But, my year was not all unicorns and rainbows. After a busy summer focused on my self and coding I had managed to bite off more than I could chew and felt burnt out.

As if that wasn’t bad enough (because I definitely have been there before), the seasons turned to Fall and my Seasonal Affective Disorder started to impact me suddenly and heavily.

There was no motivation. Sleep was disrupted when I got it, and was always at strange times of both night and day. The impostor syndrome from learning to code compounded things.

So I took a break.

I withdrew from the Fall semester at college a month after it started and I went back to basics. I also submitted for a two month hiatus from bootcamp. That last part hurt.

I wish I could say the turnaround was fast, but as others with a mental health diagnosis can attest: that is not always the case. For me it definitely wasn’t this year. 

https://images.unsplash.com/photo-1525227661914-3ed79b83624e?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb

Things turned around eventually, of course.

I began to rebound just before Thanksgiving. Re-enrollment in bootcamp was right around the corner and I was feeling excited for the pumpkin roll (my favorite dessert). Even though it was a much dialed down celebration this year, it was just what I needed.

That was an indication that things were on the right track but probably my biggest motivator was to actually step on the scale and see how much weight I had gained since April. I hadn’t exercised since late July and my eating habits were a mess too, so it should not have been a surprise, but yet, it was.

I had a serious talk with myself, and then eventually my mom. She has become my partner in crime since I’ve been home and I told her how upset I was with letting myself slip and how I wanted to improve my health. She offered to take walks with me and go on a diet together.

That was the momentum shift I needed, and so the day after Thanksgiving we exercised and shopped for healthy foods to stock up on.

It was only a couple more weeks and I was back behind the console coding for bootcamp and side projects alike!

An instrumental factor in my success turning things around was not only the support of my family and friends but the added accountability through the online tech community. I stumbled upon a Twitter/Discord group called Devs Helping Devs and jumped in with both feet. I definitely recommend checking them out!

 

 


 

 My Coding Journey

This year wasn’t my first step into the frontier land of code. As a young teen, a friend and I were responsible for building pages on and maintaining the overall school website. Then, of course, there was Myspace too. So I was no stranger to HTML and CSS.

That said, I wasn’t sure where to start and definitely needed a refresher. So after about a week of research I settled on a Codecademy Pro subscription and got to work on their Web Developer learning track (now reinvented as a Full Stack Engineer track).

I want to say, there are so many resources online to learn to code that it can be overwhelming. Had I not heard of Codecademy first and already bought the subscription then I assuredly would have wound up on FreeCodeCamp, a very worthy (and free) alternative. I am not a paid spokesperson for either and am merely sharing my very personal and customized approach that I took. Everyone is different.

Then, as mentioned before I had won a free ride to web developer bootcamp through YPracticum. I won this a week before I was going to commit to a $15,000 loan for another competitive bootcamp. Talk about luck!

As if that wasn’t enough, I very recently won a grand prize course offering in another online giveaway. I couldn’t believe it.

I would be remiss to not give a heartfelt shout out to Danny Thompson over on Twitter. He does a tremendous amount to support the dev community and make coding feel accessible to people from all walks of life. He’s been a godsend.


Next Steps and Commitment 

Looking ahead, there is still so much to do and sometimes it certainly feels daunting but now that I have found my groove again, I know it’s all gonna come together. I have been tweeting a lot lately about being productive and focused and I just want to say:

Productivity is relative, in my opinion. I make an effort not to compare what I do to what others put out there because not many people are likely to share their struggles. I think that’s a shame as it can create a fierce sense of competition or FOMO or many other feelings. Especially if you’re not working with a solid foundation.

I just try to keep it simple and push myself to only compete with myself.

So far, that philosophy has allowed me to accomplish more per week than I had done this summer!

If I didn’t know myself enough to take a break then who knows what would’ve happened. I doubt it would have been good.

My goals are many for next year and I will not list them all because it would not only be boring, but also who is to say what could happen? I find it important to be flexible.

That said, after making a vision board with the help of two wonderful productivity tools (Miro and Trello), my focus is on learning the basics of design and completing bootcamp and a couple semesters towards my CS degree.

I plan to blog about my experiences and other things throughout the year and will publicly commit to a post per fortnight (14 days).

Stay tuned and, Happy New Year! See you all in 2021 🎊


Thanks for reading! If you enjoyed this article… 

Feel free to comment at the bottom, share any open source projects or other suggestions below or just drop a line to share your thoughts!

If you have any freelance opportunities or just want to say hello, outside of the article, then click the button 😎

All photos sourced from Unsplash.

Coding Loops: Python && JavaScript

Coding Loops: Python && JavaScript

An earlier version of this article was posted here, on Medium.

Intro

For those of you who need an introduction, you can find one here.

When I decided earlier this year that I was going to blog about my life, I was oblivious to how I might approach it. With that blissful ignorance I began to flesh out a draft of my approach to the task and it resulted in the article above.

Since then, I’ve read more blogs on tech topics, taking notes along the way and decided to switch up the format. I’m going to try and make a weekly series of blog posts about my challenges learning to code and how I overcome them.

This is the first post in that series and I plan to outline a problem I encountered at the end of my second month learning. It’s regarding loops in both Python and JavaScript.

top down view of MacBook Pro screen with code

 

 

Photo by Nate Grant on Unsplash


The Problem

That’s from the Udacity CS101 course, lesson number 5 which I encountered at the start of June. If you’re like me, you think it sounds simple enough…in application to solving a problem, boy, was I wrong.

The lesson (for me) gave adequate but not great detail about the syntax/components of a for loop and no support for problem solving techniques. So when the course asked you to create a function with a loop to give the factorial of a number input(n), I was puzzled to say the least.

I was left to “poke and hope” at the code for the problem. I could fathom that we needed to increment the (n) value down by 1 and reinsert it back into the function I declared but no matter how I wrote it, this happened:

infinite loop result in Python

 

 

 

That’s called an infinite loop result, I would come to find out. It looks like the code does nothing.

I was at a loss. Worse yet, I was beginning to question if I was cut out for programming. The fabled impostor syndrome I read about had begun to set in.

I decided to blame the language and move on with other areas of my studies.

“Stupid Python.” I said as I decided to focus on Codecademy and JavaScript (where I was somehow having a much better time). I thought eventually I’ll encounter something that will give me an idea.


The Solution

Three weeks passed and…nothing.

I had progressed with Codecademy and was enjoying it, but admittedly it was mostly HTML/CSS. I always had that problem in the back of my mind, though.

Then, finally, I made it to the more involved JavaScript lessons. I was excited because I could see that loops were a part of the curriculum.

At this point I had invested many hours into Codecademy and I knew the structure of their lessons and exercises would be detailed enough that I might get somewhere.

I was half right.

After taking the loop lesson and passing their basic exercise, I tried to program a factorial function and lo and behold! …

I got stuck.🤦🏻‍♂️

Now, it’s important that I mention my pride in my ability to learn. I never struggled in school. In fact, often I excelled with ease. Therefore, I was stubbornly insistent on not “cheating” and looking up the answer. I would learn this was misguided.

Besides, I didn’t really know who to ask for help. Or, how to word the question.

I had code in Python and JavaScript that would at least return a result. It was just wrong.

python code
It was returning the input in Python…🤬

JavaScript code
At least in JavaScript it would iterate!🤷🏻‍♂️

I thought hard about what to do and I caved. I watched the Udacity tutorial for Python and revisited the loops lesson on Codecademy. In both cases, the solution felt so obvious once I found it; it did not, however take away from the pride of solving it myself in JavaScript.

Here is what they should look like solved proper:

python code
The Python tells us that 5! = 120, hooray!🤘🏻🤓🤘🏻

JavaScript code
The JavaScript agrees! So, what’s the difference? Did you spot it?🤔

For Python, I remembered after seeing the solution video, that indentation and white space are critical to the syntax of your code and how it executes. So, with return result right under the while loop’s procedural code block it was returning the input. By simply aligning the return result with the while statement itself we get the proper result.

In JavaScript, the buggy results where a matter of where the console.log(result) was placed. When it is before the second to last closing curly bracket (}) then the loops code block includes it as an iterative step in the procedure. Outside of that second to last curly bracket and it returns just the final result!

If I hadn’t had the confidence of solving it in JavaScript after seeing it function in Python, I wouldn’t have had the bravery to ask for help on another problem later on that same day. Here is the start to the thread:

The response was fast and friendly. I thought, “No trolls? Is this really the internet?”

But user [at]domhabersack was helpful in making a suggestion without exactly giving the answer away.

I applied that suggestion and the code worked! I was even able to refine it from my initial solution to something that I thought was more readable/logical.

The imposter syndrome had subsided and I found my “groove” again.


Summary

I’m not sure if there will always be some wholesome meta lesson to wrap up my posts but I think today there is:

  1. It’s okay to not know the answer.
  2. It’s expected that you’ll need help when you’re starting out. So just ask!

Maybe I got lucky, but I’m holding out that this wasn’t a one-off. Faith in humanity restored.


Thanks for reading! If you liked this article…

Feel free to comment, share any open source projects or other suggestions at the bottom or just drop a line to share your thoughts!

If you want to reach me via e-mail and separate from this article, I’m open for freelance opportunities or just a friendly chat on your tech interests, click the button 😎

Pin It on Pinterest