Article’s Objectives and Key Results (OKRs)
In every article in this series, we set out to accomplish one or more objectives (the “O” in OKRs), and the success of these objectives will be measured by or determined by some key results (the “KRs” in OKRs). The key results are the specific concepts or ideas you will learn and the steps you will take to accomplish the objective(s).
In this article, we set out to accomplish the following objectives, all of which you will realize when you read the article and complete the exercises at the end:
- Understand why you need a goal and a purpose before you make any plans and commitments for a career in programming.
- Understand how your goal and purpose will help you succeed in your programming education and your career.
- Find your goal and purpose, and use them to make definitive plans for your programming career, including your selection of the ideal career path, courses, and coding school.
We discuss the key results at the end of the article.
Your goal—that is, why you want to become a programmer—determines which specific programming career path you should choose, which type of coding school you should attend, and which courses you should take. And your purpose (whether a desire for a reliable and handsome salary, wealth, autonomy, mastery, or some other internal motivation) will be perhaps the biggest determinant of your success in the programming school and in your programming career.
Before you sign up for any programming classes and even make any concrete plans for a programming career, ensure you identify your goal and your purpose. If you don’t, you could make one of the biggest mistakes of your life, as choosing the wrong career path (this single bad decision) can and likely will have massive negative consequences while you study, after you graduate, when you get a job, and the months and years and decades after. Yes, your decision now will affect your entire future.
In this article, you will learn why your goal and your purpose matter much and how you can identify them and what choices to make once you know both your goal and purpose. And you will get specific advice on how to maximize your potential for short- and long-term success.
The rest of this article continues after the series’ table of contents below.
Articles in this Series
- Why Now Is the Best Time Ever to Become a Programmer, What You Can Do With Your Programming Skills, and Why Programming Is One of the Best Career Paths
- Your Goal and Purpose for Learning Programming Will Determine Which Programming Career Path to Pursue and Whether You Will Succeed
- A Significant Number of Students Quit their Programming Education, Find Out Why Before You Sign Up for a Program and Suffer the Same Fate
- The Crucial Factors for Success in Programming, Assessing Your Capacity to Become a Programmer, and Choosing the Best Programming-Related Career for *Your* Capacity
- Why You Will Need Your Family’s Support While You Train to Become an Employable Programmer
- Teaching Yourself to Code to Become an Employable Programmer—What to Learn, Where to Learn, and More
- Selecting a Coding School: Programming Boot Camps vs. Accelerated Programming Academies vs. MOOCs vs. University Computer Science Degrees vs. For-Profit Colleges
Know Your Goal (Why) and Your Purpose (What Is Motivating You)
Without a goal and a purpose, you are as lost as a traveller without any navigation or map, without any knowledge of his journey, without any forethought about the length of his travels or the resources he will need, without any understanding of his destination.
With a goal, you will know exactly what you have to do (the key results or the steps) to accomplish the goal, how you will do what you have to do, when you will do it, and what to expect along the way. You will even know how to avoid mistakes that routinely end other people’s careers and how to improve your chances of succeeding.
Your goal, then, is mandatory.
Finding Your Goal
Why are you interested in becoming a programmer or improving your coding skills? To find your goal, you can ask yourself the following questions, all of which proceed this question: Why do I want to learn to code or become a more skilled software engineer right now?
- Am I doing it to get a job within 2-3 months, within 6–8 months, or within 1–2 years?
Am I doing it to start my own internet startup or build some kind of business?
Am I doing it for mastery, for my burning desire to become more knowledgeable and skilled in a specific area of specialization?
For most of our students, their goal is rather straightforward: They want a full-time job within 7–12 months, so that they can get a handsome, reliable salary.
Whatever your goal is, make sure you do have one because it will dictate what career path you choose, what courses you take, for how long you should study, which coding school to attend, and more.
In addition to your goal, you should also know your purpose—your big motivation—and ensure it is powerful enough to push you to succeed.
There exist two fundamental types of motivators, as expounded in self-determination theory by Edward L. Deci and Richard Ryan, and as Daniel Pink more recently detailed in his popular book Drive: The Surprising Truth About What Motivates Us:
- Extrinsic (or external) motivators: These include matters such as money and fame. You are driven by the need to get rich, make money, not be punished, or get some kind of reward that exists externally to your inner self.
Intrinsic (or internal) motivators: These are motivators internal to you, your inner self, and include matters such as autonomy, mastery, and purpose. I discuss all three below.
As I note in the article The Crucial Factors for Success in Programming, and The Programming Jobs That Are Best for Your Purpose and Capacity, “the thing that will keep pushing you forward no matter what setback or difficulty you encounter is your purpose. Purpose is something more powerful than one’s grit or their desire. Purpose is the drive, the motivation—the primary reason—you are pursing a career in programming. Purpose is the answer to the question Why exactly I am putting myself through all of this mental toil and relentless sacrifice and inevitable frustration for many months and years? You will likely know your purpose once you ask yourself that question and answer it.
You will notice that your purpose differs from your goal. Look at the answer to the question about purpose and notice it differs much from the answer to the question about your goal.
Finding Your Purpose for Pursuing a Career in Programming
Besides asking yourself that one main question (Why exactly am I putting myself through all of this mental toil and long sacrifice and inevitable frustration for many months and years?) to reveal your purpose, you could dig deeper to find out what specifically is driving you, what is motivating you, what your specific purpose truly is. To do this, you could ponder questions such as the following:
- Am I learning to code to make a bigger salary so that I can help my family with a stable financial future?
Perhaps you have kids or plan to start a family or want to buy a house or want to help your parents and others.
Am I going to spend the next many months focused on becoming a top developer or engineer because I want autonomy over my work and life?
Autonomy, in this context, and as recounted in “Drive”, means that you want choice. You don’t want to be pressured to do things based on external controls. For example, you want control over when you work, where you work, what sorts of tasks you do each day, how much pay you work for, how many hours you work, whom you work with, and so on. Working as a programmer, depending on the company you work for and your specialization, can give you this sort of autonomy.
Am I improving my programming skills so that I can become a more knowledgeable and skilled programmer, because I am determined and passionate about programming and about building software? I want to get better at what I do.
Mastery, the unquenchable thirst to keep getting better at something you love or want to excel it, is such a powerful force as to be a single self motivating factor to keep pushing you forward, day after months, weeks after years, joy after satisfaction, mental fatigue after stress, frustration after disappointment, all with no loss of enthusiasm, no possibility of ever giving up.
When I was learning web programming on my own, I experience such travail and joy and satisfaction. And, more recently, I have gone through the same things while trying to become a scratch golfer. There is no external reward such as money; the reward is the activity itself, and this very nature of mastery makes it as powerful, maybe even more powerful, than any other motivating force.
Am I doing it because of my strong desire to realize a specific aspiration I set for myself?
Some people have a specific aspiration (for example, to become an engineer at Google or Facebook, or to become a highly skilled frontend engineer) and they are extremely determined to realize that aspiration.
Am I doing it because I hate my current job or career so much that I feel compelled to get a better career, a more satisfying career? Am I doing it because I have been ridiculed or thought little of by someone or others and I am determined (to prove to myself and to those who have no faith in me) that I can become great at something?
I have discovered that hate is one of the most powerful motivating forces within us; it can drive us to do extraordinary things, good and evil. Although few experts discuss hate as a motivating force in behavioral psychology, I have discovered that hate is perhaps as powerful as love, even though we (that is, humanity) isn’t willing to accept this unfortunate reality about ourselves. I know a couple of students at Bov Academy who were driven by hate for something ill that was done to them, and it pushed them to success. History has proven time and again that hate is as perhaps more powerful than love. If you are motivated by hatred of your job or hatred of poverty or hatred of not living up to what you know can become, turn that hate in something positive and become the best you know you can become.
Am I doing it because I feel a sense of responsibility to accomplish something significant or to help people I feel I need to help. I may have the capacity to become something great by using my cognitive abilities and I feel I must answer the calling and acquire the skills necessary to allow me to make the positive impact I know I need to make.
Whatever your purpose, you must have one. Identify your purpose and ensure it is strong enough to push you to never give up, to ensure you succeed, no matter what difficulty you will face.
Without a Purpose, You Will Fail or Quit
I cannot overestimate the importance of purpose in your programming education, and indeed in anything significant and challenging that you set out to accomplish. Programming is hard and can be frustrating for many people to learn and mentally exhausting as a career, but your purpose will make it tolerable, manageable, and even enjoyable.
If you don’t have a compelling reason—a purpose—to pursue a career in programming, you will likely fail because of the difficult challenge of becoming an employable programmer, or you will give up because you don’t have a compelling enough reason to motivate you over the many weeks and months and years, through exhausting challenges.
For more on the importance of purpose as a crucial factor for success in your programming education, see the related article The Crucial Factors for Success in Programming, and The Programming Jobs That Are Best for Your Purpose and Capacity, the fifth article in the series to which the article you are reading now belongs.
Next, let’s discuss the most popular goals for aspiring programmers and seasoned programmers and the specific career paths and coding education ideal for each goal.
Common Goals and Some of the Best Programming Career Paths and Coding Schools for Each
The possible programming careers you can choose from are so plentiful and so dissimilar that some compliment your goals (and your capacity) while others may wreak misery on your plans while others you may find impossible to comprehend.
Likewise, the types of coding schools (Programming Boot Camps vs. Accelerated Programming Academies vs. MOOCs vs. University Computer Science Degrees vs. For-Profit Colleges) are so divergent that some are unsuitable for some people and ideal for others.
Accordingly, you want to choose the right career path and the right kind of coding school for your goal and purpose and capacity. I discuss more about your capacity in the fourth article, The Crucial Factors for Success in Programming, and the Programming Jobs That Are Best for Your Purpose and Capacity, in this series.
We can now look at some common goals and the best career paths for each.
Goal 1: To Become a Programmer to Get a High-Paying, Full-Time or Part-Time Job
If you want to become a highly paid part-time or full-time programmer, first, you want to:
- Choose a career path that aligns with your goal and purpose and that fits within your capacity: Surely, you don’t want to pursue a career as an algorithms engineer or fullstack engineer within three months if you have no substantive programming experience and you hate solving complex programming problems and dislike building user interfaces. These career paths would be misaligned with your goals and capacity.
Similarly, if your priority is proficiency and confidence—mastery—in your area of specialization, you don’t want to attend a crash-course coding school, the sort that focuses on teaching you a third of what you need to know and should know just so you can graduate quickly to get a job.
Choose a career path that involves the sorts of tasks you will enjoy (or at least the sorts of tasks you know you could learn to enjoy), since you will have to indulge in such tasks eight or more hours a day, for many years. Surely, you don’t want daily tasks that you dread and you don’t want to end up in a profession that you despise. Doing so would cause you much stress and sadness, no matter how big the biweekly paycheck, and you will eventually quit and have to start a new profession.
Choose a career path that aligns with your capacity. Don’t be afraid of pursuing a new and challenging career, as long as you give yourself sufficient time to study and to become proficient. If you believe in your self, with dedicated training and practice at a good coding school, you absolutely will accomplish what you set out to accomplish.
Choose a career path that will allow you to get a job in the time you need to or expect to find a job: If you urgently need a job within three months, you won’t sign up with a MOOC or an accelerated coding academy in a career path slated to be completed in seven months or two years.
Choosing the Best Type of Coding School and Programming Career Path for a Full-Time or Part-Time Job
For a comprehensive discussion on just about every programming job and the job responsibilities and qualifications and salary for each, after you read this article, be sure to read the others in the series, particularly the seventh article: All the Programming Careers and Everything About them—Including Responsibilities, Education, Available Jobs, Qualifications, and Salaries.
Exercises to Find Your Goal and Purpose and the Best Programming Career Path for You
At the end of this article, I provide some exercises for you to complete. When you complete them, you will be able to find the best career path and coding school for you. The exercises include consideration for your goal, your purpose, your capacity (that is, the amount of hours you can study, your cognitive capacity, and so on).
Ensure you understand the programming career paths discussed and choose the best one for you—the one that’s most apt for your goal and purpose, fits within your capacity, and involves the sort of work you would enjoy.
Depending on your age and how soon you want a job (depending on the school you attend, you can graduate in just three months or in one, two, or even four long years), you will want to consider some programming professions and ignore some others. For example, if you urgently need a job within two to three months and proficiency and confidence in programming are not crucial factors for you now, your best combination of choices may be to purse a career as a frontend developer or UI/UX developer or mobile developer and to train at a programming boot camp.
For another possibility, if you plan to become a frontend engineer, blockchain engineer, fullstack engineer, or backend engineer and you want to be a confident and skilled programmer, you will want to enroll in a more rigorous program than a boot camp, such as one offered by an accelerated programming academy like Bov Academy. And you will want to give yourself at least 4–8 months to complete the training before you start looking for a high-paying job.
As you see, the career path you choose matters much for you and your short and long-term success.
Remember to read the seventh article, All the Programming Careers and Everything About Them—Including Responsibilities, Education, Available Jobs, Qualifications, and Salaries, in the series to choose the best career path ideal for getting a job today. And remember to complete the exercises at the end of this article.
Some Programming Career Paths To Consider for a High-Paying Full-Time Job
As of June 2018, the following programming careers are in high demand and pay well, no matter where you live:
- UI/UX Developer
- Frontend Developer or Engineer
- Mobile Developer or Engineer
- Data Scientist
- Fullstack Developer or Engineer
- Backend Engineer, with specialization in blockchain or big data or AI
These jobs take a short time to learn and have high projected growth for the next few years. Some of them are easier to learn than others. And all of them pay well. No matter where you live, you should be able to make at least a middle-class salary in your country, as a full-time employee in any of the noted careers. If you are not paid well, you can consider a remote job working for an international company in the US or Europe.
If you are between the ages of 14 and 24, or if you have enough time (say, 2–4 years) for your programming education, you should consider these additional specializations :
- Computer Science: You will be able to do anything, even teach at a college level.
- Cybersecurity Engineer: You will be able to create your own security firm or work for any large or small company.
- AI Engineer: To become a proper AI engineer, you will need ample time to learn and understand and master the complex concepts, so don’t expect to complete your training by just taking some online courses at a MOOC in a couple of months, unless you are already an experienced engineer.
- Software Engineer: Your skills will be generalized, not specialized, which means you will have the advantage of choosing from many kinds of programming careers.
- Algorithms Engineer
- Autonomous Engineer: You will be able to build software for autonomous systems and platforms and services.
Goal 2: To Become a Programmer to Start a Programming-Related Business
There exist unimaginable opportunities for starting a software-related businesses, including in robotics, AI, and the like. Of all the ideas that can be imagined and developed into a business using programming, we have probably only managed to realize a small percentage.
This means that of the tens of thousands of businesses already created using software engineering today, hundreds of thousands more can and will be created over the coming years and decades.
In addition, since capitalism requires profits and requires capital to be invested so as to keep generating profits (and considering there is a surplus of capital looking for investment opportunities today), you not only have unlimited possibilities for ideas for a new programming-related business, but you also have nearly unlimited capital investments awaiting your ideas.
Yes, there are countless stories about people struggling to get funding for their startup, but funding will find you once you execute well on your ambitious idea and your business shows much promise for growth. Consider this as an encouragement to become an entrepreneur.
The only caution I would note here is this: Not everyone has the high-tolerance for stress and failure that entrepreneurialism demands. Neither does everyone has the time or opportunity to pursue a business venture. If you know you can’t handle long-term stress (or if you prefer to avoid it) in our unforgiving capitalist society, don’t put yourself through the torture; the financial reward isn’t worth the devastation you will suffer psychologically. You know yourself. Do what you know can manage.
Of another thought, however, if you have the audacity and will and endurance to succeed as an entrepreneur, go build something impressive and extraordinary and help to advance humanity while you get rich.
Programming Career Paths that Will Help You Build Your Own Startup or Start a Tech Business
To build your own startup, which you can do and should consider doing if you have the time, self-confidence, and audacity to build your own venture, you should consider these career paths:
- UI/UX Developer: If you don’t like programming but still want to build your startup and are willing to work with a cofounder, this option could work for you.
- Frontend Developer: This is similar to UI/UX developer, but with more programming. You can specialize in serverless backend technologies to allow you to build your MVP quickly.
- Mobile Developer: If your startup is a mobile app, this is the best path for you.
- Data Scientist: If you are building a data-related startup, focus on data and AI.
- Fullstack Developer: If you yourself want to build everything on your own (the frontend and the backend), you can do it. But should you? You will more likely succeed if you team up with one or more cofounders and focus on either the backend or the frontend. In any case, you can take the fullstack carer path and consider specializations in areas such as Blockchain, big data, AI, etc., if you have at least 12 months to study and are determined to build your startup on your own..
If you are between the ages of 14 and 30 or if you have enough time (2–4 years) for your programming education, you can consider these specializations, all of which you can learn at a university:
- Cybersecurity Engineer: If you are building a cyber security firm, a service desperately needed in many cities and countries, this path may be the best one for you.
- AI Engineer: If you want to build an AI-driven startup, focus on AI.
- Robotics Engineer
Goal 3: To Become a Programmer for Mastery
Mastery, “the desire to get better and better at something that matters,”1 (Drive) is one of the most powerful intrinsic motivators. So powerful is mastery that we pursue it with no need for financial reward, no need for praise, no loss of interest.
I know a few students who enrolled in Bov Academy to advance their personal knowledge in programming and web engineering specifically to perform more optimally in their nonprogramming job or to become more knowledgeable about technology. I know many students who enroll to become better and better at what they do, formidable engineers.
Evidently, mastery allows us to engage and be fulfilled in a way extrinsic rewards like money never could. And for this reason, mastery, as with most intrinsic motivators, remains a powerful motivator for people pursuing a career in programming or taking courses to become better and better at what they do.
Some Programming Career Paths to Consider for Mastery
As we just discussed, unlike an external motivator such as money, whether in the form of a big salary or the sale of a startup, an internal motivator such as the pursuit of mastery is more natural and more powerful and longer lasting. And it helps to explain why some programmers are much better than others. Do you want to become better and better at what you do? Do you want to become a confident and proficient engineer and enjoy the autonomy this affords?
For the pursuit of such mastery, the following are among the best programming career paths to consider:
- Frontend Engineer: You can also specialize in serverless backend technologies to learn even more in little time.
- Fullstack Engineer: You will learn more than enough to help you excel in other areas outside programming; in fact, you will know more than most programmers know.
If you don’t need general web programming expertise but, instead, desire a particular speciality, you can consider these paths:
- Backend Engineer: Specialize in blockchain or big data or AI.
- Mobile Developer: Take the cross-platform [iOS + Android] track, as opposed to individual iOS and Android tracks.
- Data Scientist
- AI Engineer: First, you will have to complete the fullstack or frontend career path to prepare for and get the most out of the AI path.
- Cybersecurity Engineer
As I have noted above, your purpose matters much and determines which career path you should choose and what kind of educational program you should take. Now, know your goal and purpose and choose the right career path for you, as the choices will determine your short- and long-term successes.
Exercises: Actions You Should Take Now
Exercise 1: Find Your Goal
As we discussed in the beginning of this article, find your goal by asking yourself “Why am I pursuing a career in programing right now?” Or “Why am I considering enrolling in a programming academy to advance my programming skills?” Specifically, then ask yourself if you are doing it to:
- Get a full-time or part-time job
- Acquire the skills to build an internet startup
- Or pursue mastery
Exercise 2: Find Your Purpose
Your purpose is the force driving you to accomplish what you set out to accomplish. It is the intrinsic or extrinsic motivation. It is more powerful than grit and determination and desire. It is the answer to questions such as these, all of which we looked at earlier in this article:
- Am I learning to code to make a bigger salary to help my family with a stable financial future?
- Am I going to spend the next many months focused on becoming a top developer or engineer because I want autonomy—that is, where I work, what kind of work I do, whom I work with, how much I am paid, when I work, how many hours I work, and so on?
- Am I improving my programming skills so that I can become a more knowledgeable and skilled programmer, because I am determined and passionate about programming and about building software and want to get better at what I do?
- Am I doing it to because of my strong desire to realize a specific aspiration I set for myself?
- Am I doing it because I hate my current job or career so much that I feel compelled to get a better one?
- Am I doing it because I feel a sense of responsibility because I have the capacity to become something great by using my cognitive abilities and I must acquire the skills necessary to allow me to take make the positive impact I can?
If you don’t have a purpose, try to determine what you absolutely love to do or will love to do, or try to determine what means more you to than anything else. And come up with a purpose before you take any further action with your career plans.
Exercise 3: Ensure You Have the Factors for Success in Programming
Read the fourth article, The Crucial Factors for Success in Programming, and The Programming Jobs That Are Best for Your Purpose and Capacity, in this series to ensure you have the factors necessary for success in programming.
Exercise 4: Choose a Programming or Non-Programming Career Path
Read the seventh article, All the Programming Careers and Everything About Them—Including Responsibilities, Education, Available Jobs, Qualifications, and Salaries, in this series and choose the best one for you. If you don’t want pursue any of those careers or if you don’t want to become a programmer or UI/UX developer at all, you can still pursue a technical, nonprogramming career. For more on this, read the 14th article in the series, Alternative to Programming: High-Paying Non-Programming Technical Careers That Don’t Require a University Degree.
Exercise 5: Choose the Right Coding School for Your Career Path and Your Purpose and Capacity
Now that you have selected your career path, you need a place to train for expertise in that carer path. To learn about how to select the best coding school for your career path, read the eighth article in the series, Selecting a Coding School: Programming Boot Camps vs. Accelerated Programming Academies vs. MOOCs vs. University Computer Science Degrees vs. For-Profit Colleges.
Exercise 6: Enroll in the Best Career Path for You at the Most Advantageous Programming Academy for You
Exercise 7: Ensure You Get Your Family Support
Many students realize this, but based on my experience so far with more than 200 students, I believe most students don’t get the support they need from their family or don’t plan with their family to ensure they get the support they need to pursue a career in a programming.
You need your family support, particularly if you are married or live with a spouse, and especially if you provide crucial financial support each month for your family. For an in depth discussion on this, read the related article Why You Will Need Your Family’s Support While You Train to Become an Employable Programmer.
Have we accomplished the objectives we set out to accomplish at the beginning of the article? The key results will tell us; let’s find out.
Key Results to Determine the Success of Our Objectives
The key results, as noted in the beginning of the article, are the specific concepts or ideas you should have learned and the steps you should have taken to accomplish the objective(s). Accordingly, at this juncture, you should have grasped and completed the following; these are the key key results:
- You have read and understand the meaning of goal and purpose and understand why they are crucial, and you feel confident you can articulate them to anyone, whether to inspire others to find their own goal and purpose or to share your programming career plans with others.
- You have identified your own goal and purpose and have explained (or will explain) them to your family member(s) who will support you during your programming education and career.
- You have used your goal and purpose (or will do so) to finalize your plans for your programming career, including selection of the most apt career path for you—the one that aligns with your capacity and short- and long-term plans.
- You have selected a coding school (if you don’t plan to learn programming on your own) that is ideal for your goal and purpose and career path.
Recommended Reading List to Expand and Refine Your Knowledge on the Topics Discussed
The books in the list below will enrich your life and help you on your path to success. Some of them will give you a jolt of inspiration. All of them will enlighten you on subjects you may not know or that you know little of.
- The War of Art
- Flow: The Psychology of Optimal Experience
- Drive: The Surprising Truth About What Motivates Us
- Mindset: The New Psychology of Success
- Principles: Life and Work
- Abundance: The Future Is Better Than You Think
- Outliers: The Story of Success
- Why We Do What We Do: Understanding Self-Motivation
- Article: Self-Determination Theory
My Personal Review of Each Book: Sometime over the coming months, I will provide a brief review of each of these books. I am inundated with AI Humanity and Bov Academy work now. You have my word that these books are worthy of your time and some may even help to change your life for the better.