And what’s currently the most in-demand language/skill?
*I’m looking for an Android app.
You’ll need a computer, doesn’t matter if it’s a desktop, an old laptop or whatever. You’ll not be able to actually learn programming properly on a phone (besides theory…).
I like to suggest to get started with online Python courses: https://www.codecademy.com/learn/learn-python-3 (Needs a free account nowadays) where you’ll learn the very basics of programming. What are variables? Conditions? Loops? Bit of object oriented programming (OOP) and so on.
After doing the course you very much have to download Python and work on your own computer (instead of in the browser) if you want to learn and experiment more.
Just to get started with the actual language doesn’t matter much. Though at some point you should look at strongly typed languages (like C#) to get a feel for data types. What is an integer? Bool? Float? And so on, something that JavaScript and Python (to some degree) mostly hides from you. One step even further would be C++ where you learn about pointers, how memory works etc. but that’s not necessary for the first year or so (and might only be “good to know” if you don’t intend to go that low level).
At that point you can probably write whatever little program you want and get it to run. The next step is algorithms, design patterns, how to structure and organize code (concepts like SOLID), databases, source control, security and much more vague knowledge. That’s where it gets difficult and some things you’ll only pick up when actually working in a team.
You’re not going to learn much from a phone app. Specially programming.
“Learning apps” are mostly gamified gimmicks. If you never learned programming, you need a good book explaining the concepts of what you’re trying to learn, a computer, a project, and the internet to search when you get stuck.
I know it’s the boring answer, but this is one of those skills that it’s basically a lot of tinkering, exploration, and nose to the grindstone.
@SurpriZe
I saw people stating you *need* a proper computer, with keyboard and mouse, and while I do think that would indeed be ideal, there are some things that can be done through the phone.
One app that is not directly related to programming, but is a great way to setup a system for programming, and learn a lot about terminals and the linux system, is #termux (though I should warn you to NOT download it from the appstore, install it from #fdroid instead)
From there you can install many things you actually use for programming, like a compiler, text editors, python, and things that quite often courses pretend don’t exist, by giving you everything already setup in a virtual environment (not saying that is never a good thing, just that it often leaves a gap between learning and actually doing).
Some sites I would also recommend for learning are https://www.learn-c.org/ for the C language and both https://mystery.knightlab.com/ and https://selectstarsql.com/ (in that order) for learning SQL. They’re great because they let you type the code directly in a window for the problem, and execute right there, so it’s pretty easy to do it from the mobile (though not ideal).
A nice place to learn more about web dev is directly from https://www.w3schools.com/ where there are great resources on #HTML #CSS and #JavaScript and many more. They also have interactive “try it yourself” spaces in most examples, so you can test the concepts directly on they’re page.
For help with understanding termux, take a look ate their wiki pages at https://wiki.termux.com
Hope that helps, and hope you get to love it. If you want to talk about, feel free to send me a message.Thanks a ton! A golden comment with lots of actually helpful info written in a very understandable way.
I’ve only got one question in the hopes that you might know: What are the fundamental steps I should take before I can apply for an internship or even a very basic entry position in data science (or an in demand IT field, like cyber security)?
@SurpriZe Unfortunately I can’t help you much with that… since I am still stuck in my old career while I try to find my first roles in programming =/
I can share some of the tips I received myself, but they’re just general tips really. The first one that comes to mind (and one that I unfortunately can’t make use of) is to be enrolled in a course that allows you to take internships, since at least here in Brazil you need to be inside an university or something similar to be able to take those.
Another one that I am actually trying to do is to complete any small project, even if it is a web page for yourself, because it can be used as a way to show what you can already accomplish, and serves as a portfolio.
I also want to start getting some hands-on experience by contributing to opensource projects like #inkscape, but I am having trouble finding time to put into that because of my current full time job, but if you have some free time, that may be very interesting too (what could be better than helping the community *and* getting some activity in your github/gitlab).
Wish I could help more, but wish you good luck with this journey (and if you find other good tips, feel free to share them too haha)Thanks, will check it out!
Despite the (valid) criticisms you will see here, you have to start learning somewhere, so an app will have to do. Or some tutorials, there is a bunch on Youtube. Some 5 years ago Codecademy was the trendy app, Exercism as well. I’m out of the loop these days.
The goal is getting an internship (even unpaid) as quickly as possible. Most real skills are not taught on these courses, or anywhere formally.
Aside of that, once you get through the basic level, start reading threads on Hackernews and lobste.rs. You will understand nothing. And that’s good. Try to make sense of it by googling definitions and concepts, that’s how you can learn CS theory outside of a uni.
Thank you.
What’s the most useful thing/language/skill/topic to learn? Something that can be turned into a real profession down the line.
It really comes down on what you want to do.
Python for general purpose
Rust, C and C++ for systems engineering (my recommendation)
Typescript or JavaScript Frameworks if you want to be a front end guy
Pro tip: once you know a lang, learning new ones becomes relatively easy.
Thank you! I’d love to get an internship, but I’m not sure where to start as a future expat. Any ideas? I plan to immigrate to Europe by getting a degree, which is the only way to citizenship. That’s why I’m asking what field would be best to get a degree in, even though people have said a formal education isn’t important in IT.
Writing your own!
Jokes aside, the best way to learn is to start writing your own program/app and follow website tutorials