Dream on Python

Posts About Python & Programming

Bootcamps & Job search

Is It Realistic to Enter IT as a Programmer from Scratch?

Short answer: yes, but incredibly difficult.

I’ve met people who didn’t have university degrees, but managed to become software engineers on their own and successfully advanced in their careers. There were those who took year-long/year-and-a-half programming courses, or six-month coding bootcamps.

There were also those who actually focused mainly on self-learning, read many books, participated in projects and supplemented knowledge with short courses.

All these people, after 5-10 years of experience in the industry, became “first-class engineers” (yeah, some companies like to declare that they only hire such!). But here I’m writing my opinion, they really became very strong programmers, in many ways surpassing “standard” ones with degrees.

This doesn’t mean that college or courses are for losers!

No, here “survivorship bias” works. We see cool self-taught people who really succeeded, but they are few, compared to those who bought the book “Java for Beginners” and didn’t get past the first page, who took courses and didn’t do homework and dropped out, who completed courses but didn’t pass resume screening or failed the interview, etc. We don’t see them all! They simply “didn’t survive”. Only the most persistent, natural talents, and some lucky ones remained (where would we be without them?!).

For those who are starting from scratch — you need to do the following:

Coding

Learn technologies, 1-2 programming languages, master fundamental CS knowledge.

By “learn”, I mean not just watching videos or reading a book, that’s not enough, you must pass all knowledge through yourself by writing a lot of lines of code in the programming language of your choice. You must really code. Solve problems, there are platforms for practice.

If you want, you can estimate the minimum: say you need to solve 1000 programming problems. Each problem will require 10 lines of code. To solve a problem and write working code, check, learn the material, you need, say, 3 hours and another 50 lines of code (to experiment).

In total, you need 3 thousand hours of learning and 50 thousand lines of code. That’s already a year of learning, 10 hours a day!

Without 1000 solved problems, you will NOT pass most coding interviews. Even programmers with experience fail. You need practice, you need time and persistence.

On the Leetcode platform, 2700 problems are available (Easy: 700, Medium: 1500, Hard: 600). Programmers hang out there for months to prepare for interviews.

A newer platform (probably suitable for those starting from scratch): Codewars (there are 7 difficulty levels).

Programming languages

For beginners:

In my opinion, Python’s design is better than JS. But if you really want front-end, then JS is essential. While solving problems, save your solutions on GitHub. A potential employer will review them and this will increase confidence that in the interview, you’ll solve something worthwhile. More chances you’ll be invited.

Projects

You also need projects, 2-3, so that there’s both front-end and backend, something in WEB with images, which means you need HTML, CSS, JS in minimal volume. But you also need to show that you can store data (“product store”, “clients”, “products”, etc.), which means you need databases: SQL, NoSQL. Also at least in minimal volume. But this is also needed. For SQL there’s Leetcode.

You need frameworks, this is a set of tools and technologies that help implement a project. Each programming language has its own frameworks.

You need to deploy this somewhere so it runs, and to show it, which means you need Cloud (one of: AWS, Google Cloud, Azure), containers (Docker), store code in GitHub and Git, build projects from code somehow, tests and documentation — mandatory.

Say one project: 2,000-5,000 lines of code, there you’ll have Python, JS, HTML, CSS, SQL, etc.

You need 2-3 such projects, a month or two of work on each.

ChatGPT can help you here, it can write some code for you, but integration, finishing, testing, etc. is on you.

Tech blog

Start one, for example, on GitHub. Start with simple posts: “today I learned list and tuple in Python, here’s how they differ”. Start with 5-10 lines. Write once or twice a week. In a year you’ll have cool posts and a cool tech blog (I guarantee!)

Courses or learn everything yourself?

Whatever is more convenient for you, maybe find yourself a mentor.

But this minimum (above) you’ll have to go through. You’ll have to write thousands of lines of code, read and learn a lot of material, create and format projects! You need to do all this!

If a mentor writes a project for you, or you “borrow” code somewhere, it will all come up in the interview. It will be a failure. Courses and mentors won’t replace your hard work. But can make this path a bit more straightforward and a bit more comfortable.

Getting into programming — is a difficult path, a lot of work and diligence. Think three times if you need this, but if you’ve decided, then persistence and good luck to you!


Coding Bootcamp: App Academy

Before starting the main courses, you can take preparatory 4-week courses, which come in two variants: online and live. If after preparatory courses the student doesn’t get into the main course (bootcamp), they promise to return the money. In the preparatory course, JavaScript basics are studied.

Intensive training courses

App Academy allows paying the full amount (lump sum) or deferring the main payment until the moment when the student finds a job with income $50,000+. Deferred payments require a deposit of $3,000, also keep in mind that this option is more expensive overall.

Three programs are offered (all online):

16 weeks

24 weeks

48 weeks (part-time)

In all three courses, students study JavaScript, well that’s understandable, since it’s used for building the client part of applications (front-end). For server-side development (backend), the first course uses Ruby as the simplest platform, and the other two courses: JavaScript and Python.


Terms You Can Encounter in Job Descriptions

Front-end technologies:

Front-end concepts:

JS front-end technologies:

Backend technologies

Programming languages:

Platforms:

Databases:

Special text formats:

Infrastructure

Virtualization, containerization, Cloud:

Source Control, Build System, CI/CD: