lainchan / λ
I need help with apt resources. (coding & linux)
Gifu cruising · 2023-03-29 19:11
Hello, I'm enrolling to a CS program in September for mostly social reasons. What I mean is, I know this is what I want to devote myself in, and for the upcoming years I am going to absolutely no-life it. I value objective knowledge much more than academics. Very into math, ahead of the curriculum (took a gap year), however I only recently started programming and using Linux (xfce). My level for the time being, is restricted to:
>Basic Python & SQL
-Read through "PY4E"
-Supplemented "Python Crash Course" for OOP.
-Read through the official tutorial.
-Messed around a lot on my own w/ chatgtp.
--Very poor knowledge of libraries.
--No idea what container datatypes are.
--No knowledge of web frameworks.
>Good HTML & CSS
-Spend some weeks building a neocities website out of inspiration.
-Learned from scratch with free resources including videos.
I want to learn more about Linux/Unix systems, terminal usage, networking, security -> hacking in a sense. Please assume no prior knowledge for these concepts. I also want to reach a more advanced level with Python using it as my main scripting language. The CS program begins with teaching C from scratch so I am expected to pick it up by then. I've been told that the quickest/easiest way to being employable is the fron-tend route. I do have the stress of time when it comes to finding a job due to circumstances, however I want to utilize all the free time I have now and in the future (shut-in) to get a good understanding of computers, and then decide where to continue.
Given all the above, I would be extremely grateful if someone with experience took the time to give a detailed response of good resources in the order that I should dive in with. The more specific the better. Perhaps this could serve as a huge help to someone who is in a similar situation. I want to pursue this interest and really see what Linux is all about, move to Arch and a window manager, and descend the iceberg without being overtaken by webdev fomo. I find great enjoyment in what I've been doing so far. I'd also love to work with an object-oriented language like C++ in the future for experimenting with games. Please excuse the long text.
Frank Garza · 2023-03-31 01:27
Chat GPT is not good for learning because it hallucinates bullshit. It can save time if you already know what you are doing though.
If you are unfamiliar with the terminal and really want to learn fast you should try having no gui for a bit. Read man(ual) pages and understand why you do something and what the commands you use do.
Next paragraph only applies if you really want to learn as much as possible as fast as possible and are turbo sperg.
To really understand how linux works quickly you should build a linux system from scratch. You get to know what does what and get plenty of practice using the terminal/editing config files. You may want to start with arch, void or gentoo to familiarize yourself before going for lfs. I only truly understood some things when I had to install and configure them.
To understand libraries you should probably just read up on the basics and write a few yourself.
You should also take full advantage of your access to cs teachers and classmates to learn as much as possible from them.
Liking what you do is the only way to make giving away your time bearable long term, don't choose a career based on what people tell you to be an easy way to get a job. (also because everyone else will go for it)
PS: It depends on what exactly you want to do but I would recommend learning some general theory and math too.
Gifu cruising · 2023-03-31 02:53
>>34982
>You may want to start with arch, void or gentoo to familiarize yourself before going for lfs.
That is my goal. I will finish this book first:
https://linuxcommand.org/tlcl.php
>I would recommend learning some general theory and math too.
Math is my strong point. I've been sitting with "Apostol's Calculus vol1 & 2", because it was a very clear path to to follow. The internet has infinite resources for math to go from 0 to brain limits. I thought "grind through this and then I can take a break and focus solely on programming" However with computer related stuff, I know nobody I can contact for resources and the internet is flooded with beginner baits/timewaste stuff. This is why I made this post out of despair, to find what I couldn't. Arch installation looks like wizardry to me. Same with CTFs. The idea of what I should study is obvious and you are right for pointing it out, but I am looking for specific resources to neet the next 5 months with 6-8h/day until and after I start the cs program.
resources specifically for:
>SQL, (&sql interacting with python)
>Networking, security, linux, CTFs
>continuation of python + experimenting with viruses and vulnerabilities (on a VM).
&anything that someone who happened to read this schizopost believes is apt to dive into the wormhole.
Having a clear path makes it impossible to blame anything but myself for not proceeding. That's what I'm after. I appreciate your response regardless.
word · 2023-03-31 06:54
>>34983
>Apostol's Calculus vol1 & 2", because it was a very clear path to to follow.
Calculus isn't something that you'll be using much in programming, but go ahead, if that's what you like
>the internet is flooded with beginner baits/timewaste stuff
Indeed, you gotta separate the wheat from the chaff. I was going to suggest you browse the zillion books using python, like "black hat python" and "automate the boring stuff", choose the ones on your level, skip the intro chapters and just fill your head with experience with different applications of the language.
I've never been a fan of python, but I've been meaning to go this road because those books provide guidance in a wide array of subjects.
XERXES · 2023-03-31 10:23
>>34983
If you're really going to be getting a BSc in CS you should be focusing on the required core subjects (infinitesimal calculus, linear/matrix algebra, discrete maths, newtonian physics, electromagnetism, thermodynamics, physical chemistry, inorganic chemistry, organic chemistry, etc.) since they should be the hardest, as well as the typical CS topics like data structures & algorithms, big O notation, time complexity and space complexity. Any idiot can learn C, C++, Python, Linux server administration, frameworks, how to host a site, etc.
>>34967
>an object-oriented language like C++
It's not required to write C++ with classes/OOP unlike with Java or C#. I almost never do so and lots of skilled non-corporate C++ programmers don't either because they recognize there is no benefit.
>experimenting with games
Don't do this before you at least have a job because that's a time sink.
Tomohisa "Tom" Kanezaki · 2023-03-31 10:36
If you have no idea what to create, then try to read some documents with description of standard, protocol etc and try to implement it. It could be cryptographic primitive, some network protocol server or client (maybe readonly, set right restrictions, you don't have to implement all at the beginning). There are also many resources for beginners like build your own renderer in few days. Maybe it will not have many features but you can grasp many ideas. To make it more interesting try to find "awesome technologyname" curated list and try to take something new and probably not well tested so you can bring something new in combination with your project.
renames · 2023-03-31 11:52
so i know you asked for "resources", but in all honesty the best thing to do is simply learn by doing. if you want to learn linux for networking, you're going to want to do some sysadmin projects. rent out a small vps to use as a server and try to set up or program some services, like a forum or a wiki or your own git server or something like that. by regularly setting up things like this and experimenting, you'll slowly become really good at it. reading things has never worked for me period but i think for most people it makes sense to combine open-ended projects like im describing with traditional resources and things to supplement with new knowledge
Gifu cruising · 2023-03-31 15:13
>>34984
>Calculus isn't something that you'll be using much in programming
I understand that. That was out of pure interest. Only last September I started taking CS more seriously.
thanks every1.
Yamaoto Toshi · 2023-03-31 15:31
What do people mean by learning calculus? Memorizing one hundred rules from around seven thousands?
https://rulebasedintegration.org/integrationRules.html
Hacker · 2023-03-31 16:03
>>34990
Of course not. You wouldn't refer to memorizing a dictionary as learning writing, or even learning a foreign language. Both of these things are a little memorization, a decent amount of logic, and a lot of experience.
dictionary · 2023-03-31 17:08
>>34990
>What do people mean by learning calculus?
It means understanding what the derivative and the integral means, both in mathematical terms and any other possible terms it could refer to. It also means to understand why we approximate functions with linear ones(after all, we can only solve linear equations, which is why we learn linear algebra, not quadratic or whatever algebra), to understand how optimization works, etc.
Memorizing rules and whatever are just the same as memorizing the multiplication table. You can do well without it, but you can skip steps if you know your multiplication table.
Koichiro · 2023-07-25 20:03
>>34983
nix/nixos seems to fold together several of your mentioned interests/target topics
https://edolstra.github.io/pubs/nixos-jfp-final.pdf
Dujour · 2023-07-26 07:59
>>34967
>I want to learn more about Linux/Unix systems, terminal usage
Read https://linuxcommand.org/tlcl.php
it contains pretty much everything you need to know about GNU/Linux CLI.
I recommend you install either Arch Linux or Void Linux (if you don't want systemd, install Void). Then you want to install a WM (take inspiration from the desktop thread). I recommend starting with IceWM and then experimenting with other WMs to find the one that works the way you want. You also want to learn to use either Vim or Emacs (go through the tutorials and then decide which one is the best for you).
>C++
I recommend you read PPP2. Start learning C++ after the course on C. Be sure to use cppcheck for both C and C++. And follow a style guide: https:// s u c k less.org/coding_style/
The best book on C is C Programming: A Modern Approach - Second Edition
HELIOS · 2023-08-04 08:43
>>34983
If youre into math I would learn Category Theory before investing more time into calculus.
Lain Iwakura · 2023-08-04 20:41
^^ I say forget all that about processors and operating systems, read "type theory and formal proof" and then "Homotopy type theory" if you want to be next level h4ck3r.
HINA · 2023-08-05 10:57
>>34967
>I've been told that the quickest/easiest way to being employable is the fron-tend route.
If you are smart, you get the basic design principles, CSS/Html and some JS framework (react) within a month. Another month to make professional use of it (tests, module system, performance, best practices).
If you have IRL problems which you need money to solve, focus just on solving them. This is my advice, don't spread your attention around literally 90% of what IT is. Focus on one thing to get benefits out of it.
>>34967
>-Messed around a lot on my own w/ chatgtp.
Ignore it, it helps when you actually know what you are doing and spotting errors easily. Or else you will waste more time debugging than writing code from scratch. And debugging don't add that much knowledge, as you implementing it from scratch, so not much value you will get from it.
>>34967
>I want to learn more about Linux/Unix systems, terminal usage, networking, security -> hacking in a sense. Please assume no prior knowledge for these concepts. I also want to reach a more advanced level with Python using it as my main scripting language.
Ignore it, if your focus is a job, focus on one area only. If you decide to go with linux adminstration let's say, drop everything else and only focus on it. Linux is far more complex than frontend, and security requires previous knowledge on a lot of things. Is easier to change careers once you have a career.
Remember that your time is limited