!!! This is an under construction Gist. Feel free to ping me with any ideas on it
This file will provide a wider overview on how to start programming. As long as it is not ready, check out my beginner guide here
-
learn basics of programming on a language (C#, Java, Python, JavaScript)
-
learn HTML and CSS
-
learn a script language (Python)
-
learn an Object-Oriented Language (C# or Java)
-
learn console/terminal basics
-
cd, mkdir, dir/ls, pwd
-
shell scripting
-
kernel connection
-
mac / linux / win difference
-
bash
-learn unix/windows style
TBD:
sources, free sources, docs
programming branches, job types, differences among them
where do you go? Dev, IT-related hacking, Headhunter?
We don't use languages in real life. We use technology stacks.
Some of them even has fancy acronyms, sometimes they are even packed together: MEAN (Mongo, Express, Angular, Node), MERN (same but with React/Redux), LAMP (Linux, Apache, MariaDB, Python/Perl/PHP), XAMPP (same but with any OS) etc. They may contain a database server, a general-purpose programming language, libraries and frameworks (frontend, backend or general usage), a runtime, an operation system.
These acronyms usually are connected to free technologies, because they were put together from independent projects. Big, corporate technologies and some others are rather mentioned by framework names. Even if they may be flexible, usually they are dominated by a specific stack. If you use .Net, it is pretty necessary that your chosen technologies will be C#, Entity Framework, IIS. Similarly Spring usually means Java, Postgres, JDBC and the Spring itself.
When use choose techologies for a project or just thinking about what to learn, specify your goals first and choose a technology stack. Unfortunately open discussions are still dominated by the misbelief of concentraing on languages and the concept of general purpose usage. In theory they are right but in practice technology environments grow naturally around project types.
- the decision
- skillset,
manner maketh man
differences
this part is an experiment to not define learning with languages, syntaxes, or library elements, but with problems. For example: instead of learning Java's foreach, Spring Boot and @annotations, let's talk about the concepts of querying data from a database, fetching data from an API and so on. I have the recurring experience that I think that I understand a technology and it turns out, that I cannot implement the solution of an everyday problem. This part is about having a list of these problems.
fetching data from an API, creating routes for a website, nesting routes, generating dynamic routes from fetched data, adding query strings to routes for either dynamic routing or to structure data on the site (like ordering by a column name),
OOP, interpreted and compiled languages,
clean code, patterns, principles, acronyms, CICD, environments
CICD, environments, OPs, Git, docs, IDE
deep memory handling, C, C++,
I am collecting interview questions to a Github repository called Your IT Interview. It contains interview questions selected by languages. I have also added language independent algorithmic exercises, testing questions and some recommendations about interviews for interviewers.
Other sources:
jvns and Edward O'Campo-Gooding question collection
HackerRank preparation kit
Some of them make sense, some if them not but should be learned. ---> it would be nice to have an article about good and bad logic questions on an interview
- CV
- Profiles (StackOverflow, Github, Linkedin)
- Special solutions (Stackoverflow Developer Story)
Frontend Developer
Backend Developer
Mobile Application Developer
SysAdmin
What is a full stack developer?
Monster
- web developer
- frontend developer
- backend developer
- site builder
Github is eclectic. You will want to find a good example repo but it is not quite easy to reach that.
A good start may be to find a related meetup from the past on Meetup.com or other sites and check if the presenters
are linked there. They usually make public repos for such events which are very nice and useful for brief intros of a concept.
For example the European R Users Meeting linked all its presenters' Github and Linkedin profiles.
You can find wonderful data scientists among them like Omayma Said
whose Github profle is quite impressive.