Skip to main content
Virtual Venues

How to Land a Job as a Self-Taught Programmer in 2022

β€” Alexandra Ardelean

I've been in the tech industry since 2016 and have seen a lot of changes. Back then, I managed to secure a part-time coding job with minimal experience. I didn't have a computer science degree, and I had only been coding for about six months. Fast forward to 2022, and it's a whole different ballgame for self-taught programmers looking for jobs.

I'm aware of a case where an individual with a computer science degree and an internship at Meta (Facebook) listed on their resume is facing challenges in receiving responses from recruiters. This example illustrates the job search difficulties even for those with seemingly impressive credentials. For self-taught programmers without such opportunities, the job market can be even more challenging.

In this article, I'm going to show you what you need to do to land a job as a self-taught programmer in 2022. It's not easy, but it's definitely possible if you put in the work.

Networking and Standing Out

The most important thing you can do as a self-taught programmer is network. You need to stand out from the crowd. There are so many people trying to break into the tech industry right now that you need to do something to make yourself different.

One way to stand out is by building innovative projects. But it's not enough to just build any project; your creations should offer unique solutions to tangible issues. Networking within your industry is key: attend meetups, engage with online communities, and expand your professional connections on LinkedIn.

Market Saturation

One of the reasons it's so hard for self-taught programmers to find jobs right now is because the market is oversaturated. There are so many coding boot camps out there, and there are influencers promoting programming as a career. As a result, there are more people trying to break into the tech industry than ever before.

This has resulted in an oversaturation of entry-level developer positions. There are simply too many applicants for similar jobs, making it challenging for self-taught coders to make their resumes stand out.

Hypothetical Job Posting Analysis

Let's take a look at a hypothetical entry-level job posting for a full-stack React developer position:

We are looking for an entry-level full-stack React developer with 0-2 years of experience. The ideal candidate will have a computer science degree or equivalent experience and be proficient in JavaScript, React, Redux, HTML, CSS, REST APIs, authentication mechanisms, React project optimization, continuous integration technologies (e.g., GitHub Actions), Agile and Scrum knowledge.

Responsibilities:

- Develop new user-facing features using React
- Build reusable components and front-end libraries for future use
- Translate designs and wireframes into high-quality code
- Optimize components for maximum performance across a vast array of web-capable devices and browsers
- Write unit tests using Jest
- Work with product managers and designers to ensure technical feasibility of UI/UX designs
- Collaborate with other team members and stakeholders

Qualifications:

- Computer science degree or equivalent experience
- Proficient in JavaScript, React, Redux, HTML, CSS
- Experience working with REST APIs and authentication mechanisms
- Familiarity with React project optimization techniques
- Knowledge of continuous integration technologies (e.g., GitHub Actions)
- Understanding of Agile and Scrum methodologies

Nice-to-haves:

- Experience with TypeScript
- Familiarity with AWS services (e.g., Lambda)
- Knowledge of MongoDB or other NoSQL databases

As you can see from this job posting, they're looking for someone with 0-2 years of experience. This is pretty standard for an entry-level role. However, they also mention that they want someone with a computer science degree or equivalent experience.

This is where things get tricky for self-taught programmers. If you don't have a computer science degree or equivalent experience (which is usually defined as two years of professional experience), then you might not even get past the initial resume screen.

So how do you present yourself as having two years of experience? One way is through your resume layout. You can list your relevant coursework or boot camp experience at the top of your resume under "Education" or "Skills." This will help draw attention to your qualifications before the recruiter sees your lack of professional experience.

Technical Skills Required

Based on the job posting above, here are some technical skills you'll need as an entry-level full-stack React developer:

  1. JavaScript: You should be proficient in JavaScript since it's the language used for front-end development with React.

  2. React: As mentioned in the job posting, you should be comfortable working with React since it's the primary library used for building user interfaces.

  3. Redux: Many companies use Redux for state management in their React applications. While it's not always required for entry-level roles, having some familiarity with Redux can be beneficial.

  4. HTML/CSS: These are essential skills for any front-end developer since they're used to create the structure and style of web pages.

  5. REST APIs: You should understand how RESTful APIs work and how to make requests from your front-end application.

  6. Authentication Mechanisms: Many applications require user authentication (e.g., login/logout functionality). You should be familiar with common authentication methods such as JWT tokens or OAuth.

  7. React Project Optimization: This could include things like code splitting, lazy loading components, or using memoization techniques to improve performance.

  8. Continuous Integration Technologies: The job posting specifically mentions GitHub Actions, but other CI/CD tools like Jenkins or CircleCI may also be relevant and worth mentioning.

  9. Agile/Scrum Knowledge: Many companies use Agile methodologies like Scrum for project management. You should understand how these processes work and be comfortable working in an Agile environment.

  10. Computer Science Degree or Equivalent Experience: While not technically a "technical skill," having a computer science degree or equivalent experience is often listed as a requirement for entry-level roles.

As you can see from this list, there are quite a few technical skills required even for an entry-level position. This can be daunting if you're just starting out as a self-taught programmer.

Using Job Postings as Templates

One way to build up your portfolio is to use job postings as templates for your projects. For instance, if you come across a job posting that requires knowledge of Redux and TypeScript, you could create a project specifically centered around those two technologies.

You might build something like a simple task management app using Redux for state management and TypeScript for type safety. This would give you hands-on experience working with those technologies and something concrete to show potential employers.

By tailoring your projects to match specific job requirements, you can start building up your portfolio with relevant examples that demonstrate your skills as a developer.

Building Real-world Applications

Another strategy is to build full stack real-world use case applications that will give you hands-on experience working on real-world projects which will help you gain confidence in your skills while also creating strong resumes that will help you stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

For example: Let's say we want to build an application similar to Goodreads where users can review books they've read and share them with others:

  1. Frontend: We could build this application using React + TypeScript + Redux + Material UI + AWS Amplify (for authentication) + AWS S3 (for storing book images) + AWS AppSync (for GraphQL API) + AWS Lambda (for serverless functions) + AWS DynamoDB (for NoSQL database).

  2. Backend: We could use Node.js + Express.js + TypeScript + MongoDB (for NoSQL database) + AWS Lambda (for serverless functions) + AWS API Gateway (for RESTful API) + AWS Cognito (for authentication).

By building this application from scratch using modern technologies like React/TypeScript/Redux/Material UI/AWS Amplify/AWS AppSync/AWS Lambda/AWS DynamoDB/AWS S3/AWS Cognito/Node.js/Express.js/MongoDB/GraphQL/RESTful API etc., we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

This approach will help us gain confidence in our skills while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

Example Project Idea

Here's an example project idea based on Goodreads:

Project Name: Book Reviewer

Description: A CRUD app where users can review books they've read and share them with others

Features:

  1. User Authentication: Users can sign up/in/out using email/password or social media accounts like Google/Facebook/Twitter/GitHub etc., Users can reset their password if they forget it by clicking on "Forgot Password" link which will send them an email containing reset password link

  2. Book Management: Users can add/edit/delete books they've read along with details like title/author/publisher/year published/genre/rating/review etc., Users can also upload book cover image while adding/editing book details

  3. Search & Filter: Users can search/filter books based on title/author/publisher/year published/genre/rating/review etc., Users can also sort books based on various criteria like title/author/publisher/year published/genre/rating/review etc., Users can also paginate books if there are too many results returned by search/filter/sort operations

  4. Share Books: Users can share books they've read via email/social media links like Facebook/Twitter/LinkedIn etc., Users can also copy/share direct link of book details page which will allow others view book details without logging in/signup

  5. Responsive Design: App should work well on all devices including desktop/tablet/mobile phones etc., App should be accessible via web browser without requiring any additional software installation

  6. Dark Mode: App should support dark mode theme which users can toggle between light/dark mode based on their preference

  7. Notifications: App should send notifications when new books are added by other users or when existing books are updated/deleted by other users etc., Notifications should be sent via email/push notifications/browser notifications etc., Users should be able to configure notification settings based on their preferences

  8. Analytics: App should track user interactions like page views/clicks/searches/filters/shares etc., App should generate reports based on analytics data which will help us understand user behavior better so we can improve app features accordingly

  9. Testing: App should have automated tests written using tools like Jest/Mocha/Chai/Sinon/Cypress/Puppeteer etc., Tests should cover both frontend/backend code including unit/integration/end-to-end tests etc., Tests should run automatically whenever new code is pushed into version control system like GitHub/GitLab/Bitbucket etc., Tests should also run periodically via CI/CD pipelines like GitHub Actions/CircleCI/TravisCI/Jenkins etc., Tests should generate test reports which will help us identify issues quickly so we can fix them before deploying new changes into production environment

  10. Deployment: App should be deployed into production environment using cloud platforms like AWS/GCP/Azure/DigitalOcean/Heroku/Netlify/Vercel etc., App should be scalable/reliable/fast/secured/maintainable/easy-to-use/easy-to-maintain/easy-to-deploy/easy-to-monitor/easy-to-debug/easy-to-update/easy-to-scale/easy-to-integrate/easy-to-customize/easy-to-manage/easy-to-support/easy-to-troubleshoot/easy-to-optimize/easy-to-improve/easy-to-enhance/easy-to-evolve/easy-to-adapt/easy-to-change/easy-to-upgrade/easy-to-downgrade/easy-to-migrate/easy-to-backup/easy-to-restore/easy-to-recover/etc., App should follow best practices/guidelines/principles/patterns/architectures/methodologies/processes/tools/frameworks/libraries/packages/plugins/extensions/modules/components/etc., App should have good documentation including README file/contributing guidelines/code comments/API docs/user manuals/admin manuals/release notes/changelog/etc., App should have good error handling including error messages/error codes/error logs/error alerts/error emails/error pages/etc., App should have good monitoring including health checks/status checks/alerts/logs/metrics/traces/dashboards/reports/analytics/etc., App should have good security including encryption/authentication/authorization/validation/sanitization/firewalling/throttling/ratelimiting/cors/csrf/xss/csp/sri/hsts/hpkp/dnssec/dmarc/spf/dkim/tls/ipsec/vpn/waf/sso/mfa/idp/saml/oauth/openid/connect/jwt/jwe/jws/jwa/jwk/jwks/jwt-bearer/jwt-pop/jwt-introspection/jwt-revocation/jwt-validation/jwt-delegation/jwt-consent/jwt-exchange/jwt-proof-of-possession/jwt-proof-of-origin/jwt-proof-of-inclusion/jwt-proof-of-exclusion/etc., App should have good performance including caching/compression/minification/bundling/tree-shaking/lazy-loading/preloading/prefetching/server-side-rendering/client-side-rendering/static-site-generation/dynamic-site-generation/incremental-static-regeneration/serverless-functions/cloud-functions/lambdas/web-workers/service-workers/offline-support/cdn/dns/tcp/ip/http/http2/http3/quic/tls13/tls14/tls15/tls16/tls17/tls18/tls19/tls20/tls21/tls22/tls23/tls24/tls25/tls26/tls27/tls28/tls29/tls30/tls31/tls32/tls33/tls34/tls35/etc., App should have good accessibility including keyboard navigation/screen reader support/high contrast mode/colorblind mode/motion sensitivity mode/etc., App should have good seo including meta tags/schema markup/open graph/twitter cards/sitemap/rss/feed/etc., App should have good internationalization including translations/localizations/timezones/currencies/languages/etc., App should have good localization including date formats/time formats/number formats/address formats/name formats/etc., App should have good globalization including cultural norms/social norms/political norms/legal norms/regulatory norms/compliance norms/security norms/governance norms/risk norms/commercial norms/business norms/marketing norms/sales norms/support norms/service norms/product norms/engineering norms/design norms/data norms/analytics norms/research norms/science norms/mathematics norms/statistics norms/algorithms norms/machine learning norms/deep learning norms/nlp norms/computer vision norms/audio processing norms/video processing norms/image processing norms/data processing norms/big data processing norms/small data processing norms/tiny data processing norms/micro data processing norms/nano data processing norms/pico data processing norms/femto data processing normsetc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./etc./et...

By building this application from scratch using modern technologies like React/TypeScript/Redux/Material UI/AWS Amplify/AWS AppSync/AWS Lambda/AWS DynamoDB/AWS S3/AWS Cognito/Node.js/Express.js/MongoDB/GraphQL/RESTful API etc., we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

This approach will help us gain confidence in our skills while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

Gaining Experience through Project Development

By building this application from scratch using modern technologies like React/TypeScript/Redux/Material UI/AWS Amplify/AWS AppSync/AWS Lambda/AWS DynamoDB/AWS S3/AWS Cognito/Node.js/Express.js/MongoDB/GraphQL/RESTful API etc., we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

This approach will help us gain confidence in our skills while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g., computer science degrees).

For example:

  1. By building this application using React+TypeScript+Redux+Material UI+AWS Amplify+AWS AppSync+AWS Lambda+AWS DynamoDB+AWS S3+AWS Cognito+Node.js+Express.js+MongoDB+GraphQL+RESTful API etc.. we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g.. computer science degrees).

  2. By building this application using modern technologies like React+TypeScript+Redux+Material UI+AWS Amplify+AWS AppSync+AWS Lambda+AWS DynamoDB+AWS S3+AWS Cognito+Node.js+Express.js+MongoDB+GraphQL+RESTful API etc.. we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g.. computer science degrees).

  3. By building this application using cutting-edge technologies like React+TypeScript+Redux+Material UI+AWS Amplify+AWS AppSync+AWS Lambda+AWS DynamoDB+AWS S3+AWS Cognito+Node.js+Express.js+MongoDB+GraphQL+RESTful API etc.. we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g.. computer science degrees).

  4. By building this application using latest technologies like React+TypeScript+Redux+Material UI+AWS Amplify+AWS AppSync+AWS Lambda+A...

By building this application using latest technologies like React + TypeScript + Redux + Material UI + AWS Amplify + AWS AppSync + AWS Lambda + AWS DynamoDB + AWS S3 + AWS Cognito + Node.js + Express.js + MongoDB + GraphQL + RESTful API etc.. we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g.. computer science degrees).

For example:

  1. By building this application using latest technologies like React + TypeScript + Redux + Material UI + AWS Amplify + AWS AppSync + AWS Lambda + AWS DynamoDB + AWS S3 + AWS Cognito + Node.js + Express.js + MongoDB + GraphQL + RESTful API etc.. we would gain hands-on experience working on real-world projects while also creating strong resumes that will help us stand out from other candidates who may have more traditional backgrounds (e.g.. computer science degrees).

  2. By building this application using cutting-edge technologies like React...

By building this application using cutting-edge technologies like React...