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 😎

Coding: A Self-Taught Start

Coding: A Self-Taught Start

A version of this article was first published here, on Medium.

Intro

Earlier this year, I made the decision to better myself by learning a new skill; so, I picked coding/web development and decided about a month in to blog about my life, what got me here and what’s helping me along the way.

For more info on what lead me to pursue self improvement, check out this post.

Once I got clean and invested in myself that way, there was no shortage of ways that I thought of bettering myself and pursuing a job in tech made its way onto the top of my list.

I had an established career in Project Management and I loved it most days, but I was not in love with the BPO (Business Process Outsourcing) industry. I decided to improve my relevancy by learning to code.

He who knows not and knows not that he knows not, is a fool — shun him!

He who knows not and knows that he knows not, is unlearned — teach him!

He who knows and knows not that he knows, is asleep — awaken him!

He who knows and knows that he knows, is enlightened — follow him!

 

— Arab proverb

How I Started:

On May 1st, 2020 I decided to commit myself to coding. I spent the next 8 days trying to figure out how to start.

There’s no shortage of resources if you google “learn to code”…

search results for learn to code
Over 5 billion results!

…and if you use social media as much as me, you might start to notice targeted ads doing their work (I know I did).

targeted facebook ad for coding resources
Hey Siri, are you reading my messages?! 😅

Eventually, I figured out how I would start coding. I settled in on a years subscription to Codecademy Pro, a few other “bootcamp” courses on Udemy and then various free sources.

So far, I’ve been focusing my energy on the Web Development curriculum path in Codecademy and supplementing with frequent visits to YouTube and developer documentation on MDN.


Coding I’ve Accomplished:

Web Development Path Progress: from May to June it was mostly HTML5/CSS and some very basic JavaScript, I made it to 16% complete which equated to about one lesson per day. I also decided to flesh out a very basic prototype of a personal website to show my progress and it allowed me to play with the Codecademy exercises on my local machine.

Udacity CS101: I came across a recommendation for this course on day 1 when I read this article.

It lead me into some mid-level difficulty searching for it, as the first link in Google now points to another course but if you go here you can still access the material.

NOTE: You have to sign into your Udacity account before you paste the link in your browser.

After 5 lessons in, I got stuck on a for loop problem in Python and put it aside. (Keep your eyes peeled for a future article on syntax related to solving this problem)

YouTube: I found this tutorial on Git/GitHub extremely helpful once I had a desire to develop on my local machine.

Gwen Faraday is a wealth of knowledge!

Books: 

Design of Everyday Things (By: Don Norman) — It was an easy read in my opinion and my first look into the science of design, I will definitely read more in the series.

Living by the Code (By: Enrique López Mañas)— Another interesting and easy read, it’s an interview format with other developer talent and so I came away with lots of book/podcast recommendations on top of finding new people to follow.

Apprenticeship Patterns (By: David H. Hoover & Adewale Oshineye)— A relatively short but information packed read. Definitely something I’m going to pick up in again for a re-read.


What’s Next/Summary:

gif of Codecademy learning progress

Yayyyy JavaScript! 🤘🏻🤓🤘🏻

There have been bumps in the road, motivational challenges too, but the community that I’ve Involved myself in on Twitter and some of the forums has been so far from toxic that it’s pleasantly surprising. There’s no shortage of resources or advice if you actively seek it.

I live in an area with low population (<=10k) so there isn’t really a thriving tech community.

I plan to seek out meetups in nearby metropolitan areas to attend occasionally and I’ve gotten active on Twitter and in a few programming discords.

Considering COVID, I might even try and initiate my own virtual meetup.

ABC… Always Be Coding! 🤘🏻🤓🤘🏻


None of the links to products in this article are affiliate, I do not intend to make money off my suggestions made here.

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 😎

Pin It on Pinterest