lainchan / λ
Newbro guide
Hong, Guil Dong · 2024-06-25 14:44
Hello guys, I'm not necessarily "new" to programming but I notice I lack knowledge in fields that others usually do, is there any place I can learn the beginner tech stuff? What I mean is something like how file systems work and stuff, low level things. Do I need to read university textbooks for that or is there a better solution?
Davis · 2024-06-25 17:51
I honestly just figured it out by trial and error.
Programming is, IMO, a field where you learn best by doing; by running into problems and finding solutions to them. If you want to learn about file systems, for instance, take on a task that requires you to interact with them.
>Do I need to read university textbooks for that
Reading theoretical stuff is good when you have something practical to hinge it on. Application is the best way to internalize knowledge.
drop · 2024-06-25 21:17
If you have a decent base you just build from there, nothing else required. Write code, you'll learn more when you hit the roadblocks and have to do research. The key thing is keeping at it
Emmanuel · 2024-06-25 23:09
Lainon il right, read and apply the theory.
Colmerauer · 2024-06-26 06:34
>>39416
I think this is a good thread to ask my question. My situation is not much different from OP's.
I'm not new to programming, but I haven't progressed beyond that. I'm at uni right now, I've played around with programming languages, and I know how to do monkey job type of things (string manipulation, classes, entry level stuff like functions, loops, etc). In classes we touched on different algorithms and data structures, sockets, parallel programming, pointers, OOP and I passed them. I dont feel very familiar with topics mentioned, apart from beginner level, although I did my homework and wrote some programs like simple web-server, implemented sorting algorithms, linked-lists, etc. Still feels like I still feel like I'm not good enough for a real world job, or at least a pet project. Like I'm missing something. It's summer, I have free time and I don't know what to do next. What should I do? Should I jump straight into Leetcode pit or other coding gyms? Or should I start trying to figure out on of the fly? It's like all tasks are divided into "too easy" and "too hard" for me right now. Heck, I can't even decide whic doman or specialization I want to get into. I want to be good at everything at once. I know that sounds childish and unrealistic. Anybody else? How do you deal with it? How to do you learn? How did you break through this not-so-novice level? Please share your advice. I am hoping a fellow Lainon can point me in the right direction.
Joe Bloggs · 2024-06-26 08:35
>>39421
Write a simple, but complete, application. I recommend making an MS Paint clone. It forces you to tie all of that theoretical knowledge together in a practical way.
H.R. Giger · 2024-06-26 14:29
>>39417
I kinda have this fear that when I pick a project I'm wasting time on it, maybe I shouldn't be like this and pick the stuff I like and just do it. IDK I would love to make a Gameboy emulator or something of that order, and I figure it's a good "trial and error" area for me, and if I do that I'll learn a lot.
>>39418
I think I'm just afraid I'm missing out on some things in general. But hey, you're right, I just need to do stuff.
>>39422
MS Paint clone eh? Good idea I think. I think I'll do something like that too.
Btw do any of you have any idea how can I crack stuff, it's an intriguing field and I don't know anything about it yet, I want to watch some YouTube videos later if any available, but do you guys have any suggestions? I mean, hackers cracking games had always been a myth to me, never unfolding, it's like a magic trick to me, maybe I should just search for it and find out what's the procedure
null · 2024-06-29 17:58
>>39416
If you want to learn low level stuff then what's stopping you from doing it now? Figure out what you want to build, and build it. You only improve by doing.
>>39423
Not any of those anons but
>"how can I crack stuff, it's an intriguing field and I don't know anything about it yet"
Your post glows, but learn basics of encryption and you should be able to figure the rest out from there.
Fred Nurk · 2024-06-30 10:54
>>39423
>cracking
check out reversing thread >>>/sec/12464
BloodCat · 2024-06-30 13:24
>>39463
Thanks a lot
>>39462
Believe me for I am not a glowie fellow imageboard user, totally not associated with the alphabet agencies.
Terzibashjian · 2024-06-30 22:26
>>39416
https://teachyourselfcs.com/
Unsigned · 2024-07-01 13:32
>>39416
I recommend learning about computer architecture first before you get into programming. learn what all the parts of the computer are and how a machine reads and responds to instructions. in my opinion it makes programming a lot more intuitive.
there are so many ways to learn these days. watch youtube videos. I have a friend who learned about it by doing minecraft redstone.
queue · 2024-09-06 16:56
I would like to add that leetcode-style practice will be useful. It will make you a better problem solver. Don't force it though, treat it like a light workout each day. Choose a learning system that works for you.
Church · 2024-09-06 23:29
>>39416
Digital Design - Wakerly,
Computer Organization and Design: The Hardware/Software Interface - Patterson/Hennessy,
Computer Systems A Programmers Perspective - Bryant/O'Hallaron,
Writing Your Own Toy OS - Raghu/Chitkala
Jens Hansen · 2024-09-07 13:56
>>39417
fpbp
Related to programming, I'd say just get into it, read tutorial, first step and soykaf like that and learn from here.
If you're really new, maybe it can help to have a book with a bunch of algorithm, FIFO, sorting and other stuff that would give you some decent idea of out stuff works.
Then by wanting to do stuff you'll figure out what kind of stuff you need, like 2D graphical algorithm and libraries, dijkstra..
Outside programming, I'd say practice too. I learnt about all of that by playing with linux distro, distro hoping.
I remember learning a lot of stuff here https://tldp.org/guides.html
>>39421
> I still feel like I'm not good enough for a real world job, or at least a pet project
If you can do the stuff you listed, you're more than qualified for the job. A lot of programmers where I live aren't that good and can't into basic stuff like doing loops and conditions without fuarrrking up their programs.
It's quite late but either you really enjoy and get into code challenges, or you can just try programming stuff you like or would like to try programming. I learnt to programm android app in Kotlin like this, python when doing a discord bot.
The most important thing is to not scatter and focus on what you're doing and achieve them, even if it's ugly, event if you could do better. You'll do better on the next project.
Chani · 2024-09-08 15:54
>>39471
I'm not sure I fully agree.
The most universal, and thus important, aspects of programming are all about high-level algorithms. When you're first starting out, the question shouldn't be "how does this interact with the hardware?", because the answer depends not only on the specific hardware, but also the operating system that said hardware is running.
I think you're much better off thinking about things in terms of high-level logic; trying to accomplish things in fewer theoretical steps and using less theoretical memory.
Terzibashjian · 2024-09-09 08:32
>>39416
>low level things.
try Nand2Teris;
>https://www.nand2tetris.org/
I recommend that you look into simple retro computers.
Maybe try programming Zilog Z80 or something?
>http://z80.info
...Or how about reading about the Commodore 64? Terry Davis (of TempleOS fame) recommended the book "Mapping The Commodore 64":
>https://commodore.software/downloads/download/950-c64-programming-reference-books/16644-mapping-the-commodore-64
You can (should) use a emulator instead of having to buy an actual Commodore 64 home computer. Learn how to use C64 basic first! It's essential knowledge but luckily it's very easy!
>https://vice-emu.sourceforge.io
>https://www.c64-wiki.com/wiki/Commodore_64_User%27s_Guide
>https://sta.c64.org/cbm64mem.html
Don't forget to look up videos on YouTube.
>how file systems work
Practical File System Design with the Be File System
>https://www.nobius.org/dbg/
OSDev Wiki is another great source on all kinds of low level stuff: https://wiki.osdev.org/File_System
wd · 2024-09-09 12:58
sorry guys I don't know i can ask here. Guys can you please recommend me some good Web Developer books.
synchronized · 2024-09-11 02:09
>>40017
You cannot write efficient large distributed systems used by millions of users per second without understanding influence of stuff like cache line size or delays between cache and RAM, MMU page misses etc. Algorithmics without understanding hardware is like intentional crippling yourself.
Yamaoto Toshi · 2024-09-12 02:41
>>40034
>distributed systems
They are more about understanding of the Time and higher level concepts and not how modern microprocessor systems are organized nowdays.
Hacker · 2024-09-13 03:32
>>40035
Ah yes, a famous engineering without giving damn about a details. Meanwhile back in real world such systems are built from sum of such details. And such details make huge difference.
Zuse · 2024-09-14 01:56
>>40041
First you must understand basic and important concepts and things from high perspective, only after that you may dive deeper.
Agent Richard Gill · 2024-09-14 11:07
>>40043
Kiddo, you do not start writing such systems before knowing all levels involved.
Milner · 2024-09-17 10:26
>>40034
>>40041
Those kinds of things are important to Real World programming, but they're not universal. Different pieces of hardware are different; often significantly more different than you'd think, since operating systems and compilers do a lot to paper over the gaps.
I'm not saying that the details don't matter; they obviously do. But high-level fundamentals come first, because they apply to everything. Starting with the details and then trying to learn the basics afterwards is a very backwards approach that, in the long run, slows your progress as a programmer immensely.
>>40044
Obviously, but you should start from the top, not the bottom.
JARGON · 2024-09-18 00:45
>>40051
>Different pieces of hardware are different; often significantly more different than you'd think, since operating systems and compilers do a lot to paper over the gaps.
You don't say
>Obviously, but you should start from the top, not the bottom.
There is no correct direction for learning and people have different preferences some would not bother about high level before mastering low level and start learning higher out of boredoom, others would get bored by low level details and care about high level only and lern lovel only when they are forced to. And in practice you mostly are jumping in both directions depending on univ program you went trough. Majority of univs suck at teaching stuff in consistent well organized way.
Splicer · 2024-09-19 18:52
>>40059
Fair enough. I personally couldn't grok low-level details until I had a good deal of experience with more abstract high-level stuff, but I guess you're right in that not everyone is like that.
Motoko Kusanagi · 2024-09-24 04:55
>>40035
Pretty much this. A lot of popular distributed systems tools are in Java. zookeeper.apache.org
Turing · 2024-09-25 13:50
>>39419
What theory should someone start reading if they have never read any theory about this before?