Aller au contenu principal
Lieux virtuels

Comment obtenir un emploi en tant que programmeur autodidacte en 2022

— Alexandra Ardelean

I've been in the tech industry since 2016, and I've seen it change a lot. In 2016, I was able to land 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 much harder for self-taught programmers to find jobs.

I know someone who has a computer science degree and an internship at Meta (Facebook) on their resume, and they're struggling to get callbacks from recruiters. If someone with a computer science degree and an internship at Meta is having trouble finding a job, you can imagine how hard it is for self-taught programmers.

Dans cet article, je vais vous montrer ce que vous devez faire pour décrocher un emploi de programmeur autodidacte en 2022.

Réseautage et se démarquer

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 projects. But not just any projects - you need to build projects that are unique and solve real-world problems. You also need to network with people in the industry. Go to meetups, join online communities, and connect with people on LinkedIn.

Saturation du marché

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.

Cela a conduit à une sur-saturation des rôles de développeur junior. Il y a tout simplement trop de gens qui postulent pour les mêmes emplois, ce qui rend difficile pour les programmeurs autodidactes de se démarquer.

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.

Compétences techniques requises

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. Réagir: 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. API RESTVous devriez comprendre comment les API RESTful fonctionnent et comment faire des requêtes depuis votre application front-end.

  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. Optimisation du projet React: This could include things like code splitting, lazy loading components, or using memoization techniques to improve performance.

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

  9. Connaissance Agile/ScrumDe nombreuses entreprises utilisent des méthodologies agiles comme Scrum pour la gestion de projet.

  10. Diplôme en informatique ou expérience équivalente: 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 by using job postings as templates for your projects. For example, let's say you come across a job posting that requires knowledge of Redux and TypeScript. You could create a project specifically focused on 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.

Construire des applications réelles

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).

En construisant cette application à partir de zéro en utilisant des technologies modernes comme 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., nous gagnerions une expérience pratique en travaillant sur des projets du monde réel tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui peuvent avoir des parcours plus traditionnels (par exemple, des diplômes en informatique).

Cette approche nous aidera à gagner confiance en nos compétences tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui ont des parcours plus traditionnels (par exemple, des diplômes en informatique).

Idée de projet

Voici un exemple de projet basé sur Goodreads:

Nom du projet: Critique littéraire

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

Caractéristiques:

  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...

En construisant cette application à partir de zéro en utilisant des technologies modernes comme 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., nous gagnerions une expérience pratique en travaillant sur des projets du monde réel tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui peuvent avoir des parcours plus traditionnels (par exemple, des diplômes en informatique).

Cette approche nous aidera à gagner confiance en nos compétences tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui ont des parcours plus traditionnels (par exemple, des diplômes en informatique).

Gaining Experience through Project Development

En construisant cette application à partir de zéro en utilisant des technologies modernes comme 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., nous gagnerions une expérience pratique en travaillant sur des projets du monde réel tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui peuvent avoir des parcours plus traditionnels (par exemple, des diplômes en informatique).

Cette approche nous aidera à gagner confiance en nos compétences tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui ont des parcours plus traditionnels (par exemple, des diplômes en informatique).

Par exemple:

  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. En construisant cette application en utilisant des technologies de pointe comme 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.. nous gagnerions une expérience pratique en travaillant sur des projets du monde réel tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui peuvent avoir des parcours plus traditionnels (par exemple.. des diplômes en informatique).

  4. En construisant cette application en utilisant les dernières technologies comme React+TypeScript+Redux+Material UI+AWS Amplify+AWS AppSync+AWS Lambda+A...

En construisant cette application en utilisant les dernières technologies comme 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.. nous gagnerions une expérience pratique en travaillant sur des projets du monde réel tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui peuvent avoir des formations plus traditionnelles (par exemple.. diplômes en informatique).

Par exemple:

  1. En construisant cette application en utilisant les dernières technologies comme 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.. nous gagnerions une expérience pratique en travaillant sur des projets du monde réel tout en créant des CV solides qui nous aideront à nous démarquer des autres candidats qui peuvent avoir des formations plus traditionnelles (par exemple.. diplômes en informatique).

  2. En construisant cette application en utilisant des technologies de pointe comme React...

En construisant cette application en utilisant des technologies de pointe comme React...