Learning to program to achieve something (Serious)

4    02 Dec 2018 18:51 by u/Malagant

I am not a programmer, but the recent events of the linux community (Linus, IBM, etc.) makes me feel like I would like to learn to program. I would like to contribute and possibly one day move towards making my own O.S.

What books/websites/learning media would be useful? I have no programming experience, but have a lot of networking experience.

Thanks in advance.

33 comments

0

Just pick up where Terry Davis left off.

0

Temple OS. Never used it. Will look into it.

0

It was kind of a joke but Terry will still always be one of my heroes.

What we really need is open source hardware running a truly open source OS, and a decentralized social networking app that uses crypto bonded accounts to access a decentralized p2p meshnet. All of the tech is here. It just needs to be combined into one darpanet slaying system.

1

I am already slightly crazy, but your ideas sound great. I guess I need to learn to program and then learn the low level stuff. Going to be a while, I guess.

0

Udemy.com

0
0

I recommend learning Python first. It is extremely popular, and you'll find lots of free learning resources of all kinds. If you want to later learn systems programming, I recommend the Nim programming language.

0

Sounds good. Just bought a book. Thanks man.

0

I'm self-taught and now self-employed. I'm honestly not sure what advice I should give, since my own process was ludicrously hare-brained. An exercise in doing everything wrong. I floundered through a bunch of C tutorials for a few months, and the energy I wasted spinning my wheels and beating my head against compiler errors could've covered so much more ground if only I'd had a mentor to clear up the fundamental misunderstandings I'd had.

Like, to begin with, I didn't really understand what a compiler is, versus an IDE. I thought I needed the latter, whereas it's really just something to make using the compiler easier. I didn't understand that the idea of a "language" is really fairly abstract, whereas a compiler is the realization of what a language is specified to be. I didn't know about the shell, I wasn't on *nix, and suffered less for not knowing about these things, as for not knowing that these were important things to know about.

I didn't know what I didn't know, in other words.

So, #1 is to seek guidance from a human being, and not some bugshit tutorial website.

2 is my own subjective preference: On Lisp by Paul Graham. That's what made everything click, and turned my view of programming from a vocational skill for pajeets, to something almost transcendent. Wizard magic. An infinite frontier littered with the cast-off monoliths of people smarter than me. Common Lisp isn't typically an OSDev lang, but the point of the book is to teach you how to think about programming in terms of language construction rather than the bare mechanics of a particular language, like how to subclass Loo to have a 'poo' method.

3: If you're not already, become conversant with mathematics, and in particular learn linear algebra now rather than down the line when you find that not being able to understand math is a serious roadblock.

0

Excellent reply. Ludicrous is good since I like to stay there. I prefer the terminal with what I already have done. I will take this advice to heart. Never tried Lisp, but I will. Thanks. If I could upvote you twice, I would.

0

Thanks for the question and reply. I'm also interested to learn programming as hobby. Looking into c++ as foundation but would like to have some simple brief as to where python is situated. I can check out wikipedia for some general idea but would appreciate the experts input on this too.

Thanks.

0

Every language has its own features. I'm Magento expert so here I am talking about Magento which is one of the best using content management system to build eCommerce website. If you want to build a single page website and you have no specific knowledge of coding or programming then you can choose wordpress which is very user friendly and easy to use.

0

first, start with either C/C++ or Python

0

Take the first 5 lessons in java and python from codeacademy (will take 1 hour total). Make a website (basic, like your resume). Make an simple android app (like tic tac toe). By the time you're done, youll feel like 18 y/o Bill Gates, ready to take on the world. You can do this in a week in your spare time.

0

will do. thanks

0

I recommend learning Python. Its easiest to learn and will be helpful to do Big Data , Data Science, DevOps and UI development as well.

0

Bought "cracking codes with python". I am going to start there.

0

I have been trying to learn to program, with zero local irl friends with the same goal. Since I am mechanically oriented, I started programming arduinos for use in projects, and 3D modeling in OpenSCAD to at least get my mind "thinking" in programming mode. I hope this helps, and I'm following this thread hoping it will also set me in the right direction.

0

Just bought a book on Arduino. Was thinking the same thing. Thanks.

0

Someone here on VOAT posted a neat arduino project that is very VOAT. Using those little wifi modules, distribute hidden pirate battery powered wifi units and name the SSID something like "Hitler did nothing wrong" or "it's okay to be white" and maybe have it host a splash page.

0

Intriguing. Sounds like my kind of fun. I will try to find it. Thanks.

0

Start by learning c. The language has stood the test of time and will be a great place to start since almost everything is built on c. By the time you are proficient, you will have already learned many computer science concepts that will be extremely valuable to you. Don’t use IDE’s or other automation tools at first. Just use emacs/vim (if you don’t know either of those start learning. You can be functional with the programs in a couple hours if you put your head into it) Read comp sci forums, watch hacker videos, read books, documentation, and man pages. Comp sci is really about learning about how to operate complex abstraction systems, rather than actual coding. You can’t write a book if you can’t use a pencil, so when you run into something you don’t know how to do, find a tool to perform a task.

Remember that programming languages aren’t “magical portals into the computer” but programs built by other people to be used to create programs more efficiently. Avoid the urge to do everything yourself even though it’s tempting at first.

Don’t get caught up in political mumbo grumbo and use the tools that work best for what you want to do. The most difficult part is perserverence, but if you have discipline you can learn.

0

How have things gone since posting this a month ago? Have you learned much :)

0

Very poorly. I have had other life complications that have monopolized my time. I'll get there. Thanks for asking though.

0

It does take much time set aside, that is true... It would be nice to have someone to code with.

0

Yes it would.

0

Aww c'mon... Why don't you code up Conway's Game of Life and do a show and tell tomorrow morning. The field can be small if printing to STDOUT, or graphical. Random starting population.

0

Unfortunately, I have some other things that are consuming all my time. So, this will have to be put on hold for the moment.

0

Udemy is garbage. Make sure that you understand the fundamental concepts of computer science - code structures like for, if, while, switch, functions, classes, and when you're ready - dynamic or 'classless' code. Make sure you understand algorithms and data structures, big O notation / time complexity, space complexity, and you'll be WAY ahead of everyone else.

0

Someone else advised that same thing. I have seen some of the ads lately that they run. Not endearing at all

0

To learn how to code go to the original documentation created by the company that is responsible for making the language. For example if one were to learn javascript. the most common language in the world with the most users and the most universality, one would go to mozilla.com.

I suggest web technology. Websites like chrome exist on all devices and platforms. A miniature version of chrome can run on cell phones, computers of all operating systems, online ect .'. webtech is universal and there is no need to invent a new operating system.

search: https://developer.mozilla.org/en-US/docs/Web/Guide, atom.io, electron.js, cordova,

You will need an IDE such as Atom.io.

I have absolutely no idea about starting from scratch.

0

Awesome post. Thank you for a the wisdom.