this post was submitted on 08 Jul 2023
6 points (100.0% liked)

Learn Programming

1622 readers
1 users here now

Posting Etiquette

  1. Ask the main part of your question in the title. This should be concise but informative.

  2. Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.

  3. Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.

  4. Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

My bachelor's in software engineering starts in quite a few months

I am thinking of downloading Linux and learning the Linux terminal using the Linux bible.

then learning video, photo, and vector editing.

After that finishing the rest of the cs50 except the scratch one.

Lastly, becoming extremely good at Python

How does it all sound?

top 11 comments
sorted by: hot top controversial new old
[–] [email protected] 10 points 1 year ago (2 children)

Relax, take it one step at a time but always be making progress. Don’t overwhelm yourself, trust me. You’ll only get discouraged.

[–] RyuShay 2 points 1 year ago (1 children)

Understood, will keep it in mind.

[–] [email protected] 2 points 1 year ago

If there’s one thing I can wholeheartedly recommend learning in Linux, especially if you’re young is to start learning Vim. It’s such a good investment when you start to get good at it, look up “The Primagean” if you’re not already familiar with his videos/streams.

[–] [email protected] 2 points 1 year ago

100% agree, focus on the bachelor.
but i'd always encourage people to try out linux, no need for the bible tho, just playing around.

[–] [email protected] 4 points 1 year ago

On top of what @nom_nom pointed out, I would recommend completing personal projects. It could be a variety of things, and this link can help give you some ideas on what to do. If you don't know how something works, nothing wrong with researching how something is done. I completed a sudoku solver a few months ago, and while it's written with the equivalence of duct tape and plywood, I learned something new from it.

[–] [email protected] 3 points 1 year ago

If you want to play with Linux, install any distribution like Arch or Ubuntu, and read a few guides on this page: https://tldp.org/guides.html

[–] [email protected] 2 points 1 year ago

I would just recommend to make sure you pick small, realistic projects as you learn. There is a lot of cool stuff you can do with programming, but pick the easy, boring stuff and finish it to completion. Everyone makes a todo app, but it's a really good learning experience, so just make sure you don't skip the basics.

I tried to start with learning Unity and C# to make games, but realistically it took about a year of making smaller command line projects before I knew enough to even begin to do something that complicated. Anyways, the fundamentals are important, learn them well.

[–] ThatBlokeJosh 2 points 1 year ago* (last edited 1 year ago) (1 children)

I might be a little biased but I wouldn't really choose Python as your first language. I did and I can't say I regret it but I would have rather strated with Go, the language I currently use. Go will allow you to learn more concepts whilst having a syntax that isn't so different from Python. Go is especially useful for building projects because not only is it reasonably easy to use, it is vary fast and it has a lot of support and libraries. Python obviously even more support but it is very slow and quite limiting, also the thing that it's best at is AI and data science, which fingers crossed 🤞 will be taken over by Mojo. As projects to work on I recommend working with the web building web applications.

As for Linux, the general consensus will be use Ubuntu. I personally have been converted to a Arch zealot so I recommend something like Arco, Endeavour or Garuda. If you're very daring then even go for Arch.

If you want an advantage in your computer science class have a look at the leetcode easy questions.

PS: I am only in my first year of highschool so take my comment with a grain of salt because I still have a lot to learn.

[–] fubo 1 points 1 year ago* (last edited 1 year ago) (1 children)

Don't worry about what your first programming language is. Every language has something to teach you. If you continue on in programming for any length of time, you will learn many languages. There will always be new ones, too.

It helps to learn languages that come from different paradigms or approaches to programming. This gives you a better sense of what a language can be; what it can do for you. There are languages with a lot to teach, and they're often the ones popularly considered "difficult".

Learn Haskell. You might never use it professionally, but it will greatly improve your understanding of what programming is. And no, you don't need to be a mathematician to use it. (Recommended text: Graham Hutton's Programming in Haskell, second edition.)

Learn SQL. You will use it professionally, sooner or later, and you'll be better off actually understanding your database than trusting libraries designed to hide your database from you.

[–] ThatBlokeJosh -1 points 1 year ago (1 children)

In my opinion the first programming language that you choose does influence how you learn and perceive new languages.

[–] fubo 1 points 1 year ago* (last edited 1 year ago)

Oh sure, but so do the second and third and nth. When I write in Go today, I'm much more influenced by Python which I learned in the early 2000s than by BASIC which I learned in the 1980s, or even Scheme which I learned in the 1990s.