From Gamer to Code Junkie: Cole's Coding Adventure
I tricked my brain to be ADDICTED to coding.
Estimated read time: 1:20
Learn to use AI like a Pro
Get the latest AI workflows to boost your productivity and business performance, delivered weekly by expert consultants. Enjoy step-by-step guides, weekly Q&A sessions, and full access to our AI workflow archive.
Summary
In his latest video, Cole Caccamise shares how he transformed his approach to coding, making it an addictive and enjoyable part of his life. Drawing parallels between coding and video games, Cole explains the importance of breaking projects into smaller tasks to achieve consistent wins. He emphasizes the significance of entering a 'flow state,' blocking distractions, and treating coding as a creative outlet rather than just a money-making endeavor. With practical steps like using a version control system, setting deadlines, and focusing on solving real problems, Cole offers a blueprint for maintaining coding enthusiasm. Cole also highlights the utility of modular coding to prevent burnout and how sticking to a chosen tech stack can help in mastering skills.
Highlights
Cole shares his method to keep coding fun over long terms, even as a busy computer science student 😊
Turn coding projects into levels of a video game for consistent fun and motivation 🎮
Use a contribution graph on GitHub as a visual tool to gamify your progress 📊
Harness the 'flow state' by minimizing distractions and setting focused time slots 🔍
Coding is more enjoyable when seen as an opportunity to create, not just to earn money 💰
Key Takeaways
Turn coding into a game by breaking projects into small tasks for regular wins 🎮
Embrace the 'flow state' by minimizing distractions and setting clear goals 🎯
Prioritize coding enjoyment over perfection to keep the enthusiasm alive 😊
Avoid shiny object syndrome by sticking to a preferred tech stack consistently 🔧
Focus on building solutions to real problems, not just nice-to-have tools 💡
Overview
Cole Caccamise, a seasoned coder, brings a refreshing take on how to keep the spark in coding alive. By likening coding to video gaming, he suggests viewing each technology as a new level to beat. This approach makes learning new tools feel like personal achievements, echoing the sense of progression in games.
He stresses the pivotal role of entering a 'flow state,' where coding becomes nearly effortless and immensely satisfying. By creating an environment free of distractions and with structured goals, Cole finds himself more productive and happier during coding sessions.
Cole's advice extends to the practicality of coding - promoting modular coding to avoid repetitive work and emphasizing the need to solve actual problems with coding projects. His enthusiasm is infectious, making his methods appealing to both novice and seasoned coders alike.
Chapters
00:00 - 00:30: Introduction & Motivation for Coding The chapter 'Introduction & Motivation for Coding' emphasizes the importance of having fun while coding to maintain consistency and motivation. It highlights that many beginners might feel coding isn't for them, thinking it's only enjoyable for others. However, the speaker, with 8 years of coding experience, shares a step-by-step process to keep coding enjoyable over the long term. Despite being a computer science student and having a software engineering internship, the speaker continuously seeks ways to stay excited about coding projects, aiming to inspire others through the video.
00:30 - 01:00: Treating Coding Like a Video Game The chapter emphasizes the idea of treating coding like a video game to make it more enjoyable. It compares learning different technologies to advancing through levels in a game, each with its own rules. Success in coding is likened to winning by building a feature that accomplishes something cool or solves a problem. The chapter offers actionable advice on starting new projects by breaking them into small, manageable tasks, allowing for regular achievements. For example, instead of aiming to build a complete tool for scheduling Twitter posts, one could initially focus on simpler tasks like integrating login and adding an input form.
01:00 - 01:30: Breaking Down Projects Into Steps In the chapter 'Breaking Down Projects Into Steps,' the strategy of dividing a project into smaller, more manageable tasks is discussed. This technique not only makes the project easier to handle but also provides motivation as you get to see your progress when you check off completed tasks. Another suggestion is to keep a log of what you've accomplished and your future steps. This acts as a helpful reference to quickly get back on track with a project without wasting time trying to recall prior actions.
01:30 - 02:00: Using Git & Gamification The chapter discusses the importance of using version control systems like Git, highlighting the significance of setting one up to enable easy reversion of mistakes. It also touches on the gamification aspect of using GitHub, specifically its contribution graph, which encourages developers to frequently commit code. The graph only counts commits on the default branch, thus motivating developers to push features directly to the main repo. This gamification serves as both a personal challenge and a lighthearted development community meme.
02:00 - 02:30: Achieving Flow State in Coding The chapter discusses the concept of achieving a flow state while coding, highlighting its importance for productivity and enjoyment. A flow state is described as a condition where work feels effortless and one can stay focused entirely. The speaker shares personal strategies to enter a flow state, such as allocating specific time blocks, eliminating distractions, playing low-fi music, and maintaining a clean workspace. The overall emphasis is on creating an environment conducive to focus and comfort to maximize coding efficiency and satisfaction.
02:30 - 03:00: The Power of Dopamine & Morning Routine The chapter emphasizes the importance of preparing yourself for productive states like flow by reviewing past work sessions and setting clear objectives for future ones. It highlights the value of leveraging dopamine's effects to maintain focus and motivation, particularly in tasks like coding. The narrative underscores that while flow states are beneficial, they are temporary, thus necessitating routines and strategies to sustain productivity both before and after these states.
03:00 - 04:00: Mindset & The Rubber Ducky Method The chapter discusses strategies for enhancing productivity and focus, specifically by controlling screen time through apps like Opal that block distracting social media applications. The author shares their personal routine of waking up at 4:30 a.m. to maximize productivity before the day's meetings. They emphasize that this schedule is not mandatory but works well for them.
04:00 - 05:30: Modularity & Avoiding Boilerplate This chapter emphasizes the importance of starting your day by engaging in coding activities early to reach a state of Flow easily. It is suggested that by beginning your work as you wake up, you facilitate focus and productivity. Additionally, the chapter talks about the mindset one should have concerning coding, highlighting that while many see it as a way to earn money, approaching it with the interest of building intriguing solutions can be more inspiring. The chapter further suggests embracing the challenges of programming, recognizing that its difficulty is what makes it valuable and rewarding.
05:30 - 06:30: Avoiding Overthinking & Launching Products The chapter emphasizes the importance of avoiding overthinking when facing difficult problems in coding. The speaker recommends the 'rubber ducky method,' a technique that involves talking out loud to explain the problem and potential solutions. This method not only aids in understanding the problem better but also in exploring different solutions. The key takeaway is to prioritize progress over perfection, especially for beginners who often worry about writing optimal or "right" code. Instead, the focus should be on moving forward and iterating the solutions.
06:30 - 07:00: Conclusion & Opportunities In the conclusion, the author emphasizes the importance of writing a large volume of code to improve coding skills. They admit that not much thought is put into the quality of the solution, as they believe it naturally improves over time. Looking back at previous projects, they acknowledge significant learning progress. The chapter ends with a mention of Lumos by Charge, a sponsor, which offers AI glasses designed for daily wear.
I tricked my brain to be ADDICTED to coding. Transcription
00:00 - 00:30 yo I've been coding for nearly 8 years now and the times where I've been most consistent are when I'm having fun working on the apps I'm building a lot of people especially in the beginning can think that coding isn't for them and it's just fun for other people in today's video I want to share my step-by-step process that I used to keep coding fun over the long term despite being a computer science student and having a software engineering internship I'm still constantly finding ways to have fun and be excited to code on my projects so I hope this video will be valuable the first step to make coding
00:30 - 01:00 more fun is to treat it like a video game in a lot of ways it kind of is you have different technologies that you learn that are each its own level with rules you have to follow and then winning becomes building a feature that does something cool or solves a problem the most actionable advice I can give you on this is when you're thinking of starting a new project break it down into the smallest chunks possible so that you can have regular wins instead of saying you want to build a tool to schedule your Twitter posts you can break that up into integrating login and adding an input form creating a day
01:00 - 01:30 picker implementing the scheduling feature and so on the idea is to split up the vague description you have into much more manageable and easy to understand Parts getting to cross those items off and see the progress you're making is also a huge motivator a similar tactic to breaking up the tasks is to have a log of what you've done this could be as simple as having a notion page where at the end of each session you write down what you got done and outline your next steps this is helpful so that when you sit back down to code you don't have to waste 15 minutes just trying to remember where you left off off now almost all of us
01:30 - 02:00 use git or some other version control system and if you don't please set that up right now because when you inevitably something up you'll want the ability to revert it if you're using GitHub the contribution graph is another small game you can play trying to fill it up it's kind of a meme in the dev space that if you have a filled graph you're probably unemployed but for me I love trying to fill it almost every day it only counts commits that are on the default branch of the repo so it incentivizes you to actually get features out or just push straight to main I guess now aside from gamifying a
02:00 - 02:30 process if you can tap into a flow State wall coding this is where you can get a ton of work done and deeply enjoy it if you're unfamiliar with the concept of a flow State it's essentially where the work feels effortless and you're completely focused for me I'm able to enter these states most effectively when I block out a specific amount of time where I eliminate all distractions this means throwing on some low-fi music putting my phone on do not disturb and removing everything off my desk I do think having a clean workspace helps a ton for this because being comfortable at your desk is a part of getting into
02:30 - 03:00 the mood though that doesn't mean you have to have anything fancy now while flow states are great they don't last forever so in between and before them what you should do is warm yourself up like I mentioned with logging your work you should take time to review how your previous session went and set clear goals for the upcoming one like I mentioned with logging your work you should take time to review how your previous session went and set clear goals for the next one in a similar vein to flow States knowing how to get good dopamine from coding is a great way to stay focused and mo motivated by far the
03:00 - 03:30 easiest way to do this is limiting screen time on your phone I use an app called opal for it to block all social media apps from 4:30 when I get up up until 7:00 p.m. and because I PID 20 bucks a month for it I literally cannot end the sessions and that has already saved me hours every week that's paid for itself 100 fold now I mentioned getting up at 4:30 and that's not a prescription or requirement by any means it's just the time of day I found I can be really productive before all my meetings for the day start if you're able to get up relatively early to spend
03:30 - 04:00 your first hour or so of being awake coding it is almost certainly the easiest way to access the Flow State ideally you want to start working as quickly as you can so that you're beginning to wake up as you're working which helps facilitate this Focus next something that you shouldn't neglect is your mindset around coding some people just look at it as a way to make money and hey full respect go get your bag but I will say that when you approach it as a way to build interesting things that will serve you and others it gives you a more inspirational footing you have to remember that programming is supposed to be hard and that's what makes it a
04:00 - 04:30 valuable skill the satisfaction you feel After figuring out why a piece of code wasn't working is Indescribable my favorite way to tackle hard problems is the rubber ducky method where I talk out loud and try to explain the problem along with what potential Solutions I could write thinking out loud is a very helpful way to get a better understanding of your options and navigating the work as you're solving these problems though you want to remember that progress is more important than Perfection I know that especially as a beginner you worry that your code isn't optimal and it's not the right way
04:30 - 05:00 to do it but the way that you learn is by writing a large volume of code a lot of which is going to be shitty in the last year or so that I've been more intensely coding I've not put much thought into how good is this solution because I know that over time it's going to naturally get better looking back at my projects from even just a couple of months ago makes me realize just how much I've learned now today's sponsor is lumos by charge who we've worked with on the channel before and they're creating AI glasses for daily wear they have a Timeless design perfect for everyday
05:00 - 05:30 wear they look just like ordinary glasses and seamlessly fit into your daily life without bringing a lot of attention the adjustable nose pads in ergonomic shape fit a variety of face types for a comfortable fit they have a 16 megapixel Sony camera that you can use to effortlessly capture 4K high-res images completely hands-free this is great to capture first-person photos to send to friends or family you can also record 1080p 30fps video and use the triple aray microphone for clear stereo
05:30 - 06:00 audio to create immersive videos the coolest part is access to the lumos AI assistant powered by GPT 40 it lets you ask anything about your day whether it be a landmark you're looking at or the weather you can also snap meeting slides and lectures directly from the glasses and gets summarized their privacy focused using local storage and encrypted Cloud access when required if you're interested in checking out the lumo's AI glasses head to the link in the description and thanks to lumos for sponsoring this video as you go through that educ UC ation process though there
06:00 - 06:30 are some things you want to prevent that can drain the Fawn out of coding the first is to the extent you can stop writing boiler plate what I mean by this is not constantly writing basic API end points that don't have much specific business logic I say this as I've been building sidebar my SAS dashboard boiler plate that has been very valuable for me but I've gotten to a point with it that just working on generic features is boring the best way I'm finding to write code is in a more modular way this means that as much as possible you try to make
06:30 - 07:00 things generic enough that with minimal effort it can be pulled out and used in another project this is incredibly important as a solo Dev when you're working on several apps so that you can focus on just building the features that are specific to each one and not rewriting auth or your stripe integration over and over thinking about this modularity does cost an additional time investment in the beginning but over time you have to write less and less of this and it makes the process more fun as proof of this I'm working on the MVP for my first startup right now which I'll talk more about in the next
07:00 - 07:30 week or two but not having to rebuild authentication or my dashboard has been super clutch now when you're building projects especially if you have the goal of monetizing them it's very easy to fall into the Trap that you have to move as fast as possible don't get me wrong there's definitely value in shipping fast and if you've never launched a product you need to do that but in the long term taking things a little slower to have fun while you code is how it remains that way over months and years great software takes time to build so don't feel bad spending that extra time
07:30 - 08:00 to make that button look a little bit better when I'm coding I use various different Technologies and in the tech World things do move fast so you constantly have to learn new things that said especially in the JavaScript ecosystem there's a ton of shiny object syndrome with new Frameworks dropping every week that you just don't need to learn the best advice I can give to a younger version of myself is to just pick the stack that you like and stick with it you can try different tools along the way but at your core knowing one or two languages for your front end and back end is key understanding your
08:00 - 08:30 tools at a deeper level will make you more efficient and just like in a video game as you level up you unlock new abilities and weapons that make things more fun now what some of you might be thinking is that all this is great coal but I don't know what to build and what I can tell you is to not over complicate things I wasted years of building no products because I wanted the perfect idea it just doesn't exist every idea is going to have its own problem so the only thing you should focus on is building a painkiller not a vitamin this means building something that solves a real burning problem not just a nice to
08:30 - 09:00 have tool the easiest way I found to come up with these ideas is to have a bank of them in notion I'm in the habit of every night forcing myself to write something down here and whenever I experience a problem coming up with a potential solution and writing it down once you start to build out these ideas I recommend checking out sites like mobin nicely done or other UI inspiration sites to get your creative juices flowing about what the various flows and uis could look like now let's fast forward a bit and assume that you've locked in an idea you want to work on to make sure you're both having
09:00 - 09:30 fun and actually stick with it you need to lower your time to action assuming you don't have 10 things you're working on at once you should start to work on your new project ideas as soon as you get one you like I've allowed myself recently to build small tools I think would be cool just to keep myself in that building mindset as an example just the other day I had the recording of a 90-minute call and wanted to get a transcript so I could summarize and ask questions about it with Claud I looked all over but couldn't find an easy way to transcribe such a long clip what I ended up doing was writing a go program
09:30 - 10:00 that turns that mp4 file into an MP3 sends it up to AWS transcribe and I get back the transcript that I want now the final thought I want to leave you with is about overthinking specifically to do with building and launching your projects the best way I found for dealing with these thoughts is setting a hard deadline for when you want to release it this forces you to keep the scope small and actually form a plan of action announcing a day publicly is another way to have that accountability the most important piece is that you shouldn't be worrying about building every feature but just getting a single
10:00 - 10:30 user who cares about what you're building I hope you guys found this video helpful and if you did you might want to subscribe to My Weekly Newsletter that I send out every Sunday morning I document the process of building my projects and share valuable resources that I come across by the way if you're sick at editing videos I'm looking to bring someone part-time on the channel and in the future this could be an in-person role where we're just working documenting the process of building really cool so if that sounds at all interesting to you please go to the page on my website I'll have more information about this all of that