Course Goals
- Save a lot of time, money and effort.
- Achieve your coding goals, your plan or path to achieve those goals, the steps, routines, habits and timelines required to achieve your goals.
- Recognize myths or mismatched expectations that stand in the way of learning to program.
- Use effective tools and strategies + discouragement-tree.
- Recognize pitfalls & diversions that cause delays and derailment.
- Be a highly effective lifelong-learner.
Preparation + Mindset
- First thing to achieve your goals.
- All success start with get good at this.
- Getting most out of this course:
- Inertia.
- Frustration.
- Growth Mindset.
Time + Effort = Goal
.- Time lots of it.
A Framework for your journey
5 W + 1 H
.- Help you get total clarity & expectation from yourself, process of learning, and your definition of success.
- Keep referring to your plan! Are you on track with it? Does it need adjustment?
- The Sequence Matters:
- Better decisions.
- Demythify.
- Build the plan.
Why do you want to learn to code?
- You must define your why before you can begin with the what and the how.
- At some point, if you ask why enough time, you will get something you strongly believe.
- Ask why deeply to your previous why answer.
- What do you want to learn based on your reason?
- What the skills you must have to achieve your goals?
- What the relevant subjects to learn?
- When learning a new skill focus is the absolute key. The less topics you do the more progress you make. Separate your task into “must have skills” and “nice to “have skills” to help you focus.
Who? (Models & Mentors)
- How else do we know were going the right way?
- There so many ways to get someplace, we want the shortest right?
- Find someone who has achieved the same goals you’re aiming for.
- You almost certainly know at least one person and then there is always social media.
- Reach out.
- Make it useful, not aspirational.
- When do I need to turn to them? When you’re confused or stuck.
- A good model will help you choose a step that is right for you and takes you closer to your what, efficiently and productively.
- Internet is full of opinions, mentor can help when you’re confused.
- The Mentor/Model will help guide you to the best next step for you.
- The right WHO includes enough to help you make better decisions (even if they cannot make the decision for you).
- If they’ve done what you want to do, listen closely. But don’t blindly follow. If they’ve not done it, maybe you should find someone who has, or at least tried.
- Don’t confine yourself to physical mentorship.
When by?
- “Work expands to fill the time available to complete it” ~Parkinson’s law.
- S.M.A.R.T goals (Specific, Measurable, Achievable, Realistic, Time-Bound).
- Break it down into chunks. Each chunk must have a clear beginning and finish point. Choose metrics that can be aimed for daily/weekly.
- Don’t set goals too far into the future. Set the game up so you win quickly and constantly. Missing the timeline is 0K, if it’s the exception.
Where (Learning Formats)
- Books.
- Multimedia experience (online course).
- Let’s find yours:
- Pick your first small learning goal. Then do it several times from different sources. Should take no more than 10 hours across all your learning formats.
- Fundamentals feel strong? Now work out which formats were most effective for you.
- Eliminate formats until you’re left with top 2-3.
- Repeat with top 2-3 formats on your next small learning goal.
The Sequence Matters
Build the plan ➡️ Demythify ➡️ Better decisions
Myth 1: Computer Science = Coding
- They are NOT the same.
- “Computer science is theoretical, it takes a scientific and mathematical approach to information and it’s computation. Computer programming is practical, it is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. They are different, but related fields.”
- Do you need to know computer science, or just know how to code your goal up?
- Less is more, and Quick Wins are important.
- CS degrees are essential for some things, but not for most coding roles. What is your goal?
- TIP: ask your model or mentor what they think!
Myth 2: Math Guru?
- Short answer: No, not necessary.
- 0K - so what is the skill I need in place of math?
- Logical, structured thinking + Effective Problem Solving.
- It’s not easy for many people, it’s not natural for some. But it’s 100% learnable.
Myth 3: Coding is really hard for me
- You’ve already done things harder than learning to code.
- Walk, swim, drive, ride a bike, write, use Facebook?
Myth 4: I can learn it quickly
- The idea of a single eureka moment is a dangerous lie. Movies and pop culture get this all wrong. It makes us feel inadequate since we haven’t had ours. It prevents people with seeds of good ideas from getting started.
- Learn by doing and redoing. Reading a textbook doesn’t cut it.
- Copying a tutorial NOT the same as learning to code. But it is coding. Technically.
Learning = Time + Effort
.
Myth 5: Boring and Geeky?
- “Everyone should know how to program a computer, because it teaches you how to think.” ~Steve Jobs
- Thinking like a programmer is a great approach to thinking generally.
- Software is just absolutely a tool. It just like an artist’s paint brush. You use it to shape the world around you. To solve problems.
Reflect. Revisit. Revise
- The Biggest Risk Factors: Avoidant Behaviors.
- Not doing what you already know you should.
- Sticking with your comfort zone.
- The Biggest Risk Factors: Underestimations.
- Underestimating yourself.
- Underestimating the path ahead.
- Underestimating the time it takes to get mastery.
- Underestimating the competitive landscape.
- Underestimating the process of de-risking yourself.
- The Biggest Risk Factors: Wrong Expectations.
- What does each step feel like?
- What does “this is hard” mean?
- Things take time (but how much time is reasonable)?
- Social Media & ChatGPT.
- Recruiter interest in a competitive marketplace.
- But how do I “know” this is going to work?
- Bad Opportunity.
- Bad Execution/Plan.
- Impatience.
The Three Currencies
Money | Time | Energy | |
---|---|---|---|
Start | 📉 | 📈 | 📈 |
Prime | 📈 | 📉 | 📈 |
End | 📈 | 📈 | 📉 |
The Trilemma
Cheap | Fast | Good | |
---|---|---|---|
Cheap | - | Not Good | Not Fast |
Fast | Not Good | - | Not Cheap |
Good | Not Fast | Not Cheap | - |
Ben Franklin
If you think education is expensive…try ignorance.
Recap
- ✅ Hard things are hard. Understand what that will feel like.
- ✅ If you know what to do, make sure you’re actually doing it.
- ✅ You need to live outside your comfort zone.
- ✅ Invest (don’t just spend) your 3 currencies.
- ✅ Accept the trade offs that come with the choices you make.
- ✅ Coding is a great career for many. If you’re not making progress it’s either wrong expectations, impatience or bad execution/bad plan.
Fundamental Decisions: Intro & Objectives
The danger is making poor decisions that cost you wasted time, money and effort. Necessary, but not inherently hard.
Fundamental Decisions: Which Language?
- Popular languages.
- Most wanted and highest pay.
- Most loved languages.
- Pick a language as long as it is considered beginner friendly and is not a markup language.
- Stick to it. Ignore the urge to “dabble” in others. Get your fundamentals down pat.
- STAY AWAY FROM FRAMEWORKS until you’ve got the fundamentals right.
Fundamental Decisions: Ready?
- You feel a level of comfort and familiarity where you are not struggling to understand concepts in documentation.
- You are able to search and find answers quickly because your intuition on the nature of the problem is sharp, and you know the right terminology and concepts underlying the problem you need to solve.
- You have looked at code in one or two other languages (not frameworks) and you can read it well enough to understand roughly what it does.
- Look at your goals and plan. What comes next?
- Adjust your plan to head closer to your goal. Start small. Quick wins.
Fundamental Decisions: Which Tools?
- Keep it very, very simple.
- IDEs. Integrated Developer Environments. Fancy-speak for “code editors”.
- Tools are meant to be well suited to the task.
- IDES are similar. But getting comfortable with one is what gives you the advantage.
- IDEs Online. Online editors (code playgrounds). Good for solving programming “scratch pads” and basic training. Can be more sophisticated and entire bots and servers are possible! Require an internet connection.
- Other basic tools: version control, terminal. Necessary after you learn fundamentals.
Fundamental Decisions: Which Skills?
- Remember your learning plans and goals?
- Break them down into smaller, measurable sub-goals.
- Build skills one at a time.
- Not sure of which skill next? Stay away from advanced skills. Ask your model / mentor.
- Ask yourself: Is this necessary for me to learn next? Or just desirable? Is there something else I need to know more than this?
- Unhelpful Questions: Should I know this? Or will this make me a better coder?
Learning Formats: Measuring Effectiveness
- PRACTICE.
- What Should I practice?
- The way your chosen programming language needs to be written (syntax, etc.)
- Combining basic concepts to do more logic and interaction. Building, brick by brick.
- How to Google for answers. How to look at StackOverFlow. How to ask questions the right way. Build your coding vocab.
- Reading (and actually understanding) documentation.
- Add other people to your coding journey.
- Read Code. Open source & GitHub = awesome resources!
- Teach someone else what you’re learning.
- Pair program.
- Pace……yourself……
- Pomodoro Technique.
- Walk away when you’re stuck. Change your state. Do something cognitively totally different: play music, listen to music, water plants, walk the dog, meditate, exercise.
- Warning: it’s very hard to step away! Coding is addictive. Intense concentration is hard to Step away from. Concentrating on the wrong thing doesn’t help.
Setbacks and mindsets
- You fail when you quit. Everything else is just a setback.
- Think of your favorite athlete. Develop a champion’s mindset.
- Learning to code is being an intellectual athlete.
- 2 theories as to why you may be confused…
- The learning format/resource is not working for you
- You skipped steps and jumped ahead too far.
- Types Of Overwhelm.
- Information.
- Estimation Error.
- 3 reasons to why you may be overwhelmed…
- You skipped steps and jumped too far ahead.
- You’re not specific enough and so you’re doing too much all together.
- You feel you’ve underestimated the size of the learning goal.
- The right mindset of overwhelm.
- Is a signal. Not reason to quit.
- Very common, but misunderstood.
- Not hard to solve.
- Solution to estimation error.
- Revisit goals/plan and adjust.
- Conclude coding cannot be a priority right now.
- Doubt.
- Here Human. Have some impostor syndrome!
- Feeling the weight Of doubt is normal. Actually, it’s universal.
- Beating doubt is a mechanical process:
- Accept, and separate fact from opinion.
- Keep moving forward.
- Progress is slow.
- Programming is a craft. Competence takes time.
- Don’t run out of patience, unless it is strategically right for you.
- Go back to the 5Ws and refresh your WHY.
Success = Effort + Time
- Getting stuck…
- Pause. Step back. Accept the situation.
- Re-set your expectations on time and effort needed in light of error.
- Remind yourself to be patient while you search for the answer. Most of coding is consulting google and other resources.
- Remind yourself the first few times are the worst. It gets easier and faster from here.
- Yes it’s going to take more time. But at least you’re going to find out why, so when it happens the next time you’ve got an experience to draw from.
- Over time you get faster. and faster. Until you learn something new. But with time you see the pattern. You’ve got a better map!
- You’re going to compare yourself…
- If they can do it. I sure can.
- They had a much harder time finding resources than I ever will…
4 stages of learning
- Unconscious Incompetence.
- Conscious Incompetence (awareness).
- Conscious Competence (learning & change).
- Unconscious Competence (mastery).
Source: