4 ms·
HN how do I learn to code?
I was recently dismissed from my uni where I was planning on studying compsci (mostly had to do with my very bad grades from the semester I tried to major in mechanical engineering but I degress). My hope is to contribute to the FOSS ecosystem as a developer, but as it stands I have very little experience programming. I feel I have a rather strong conceptual understanding of how computers work, but I still don't know how to talk to them. As school is no longer an option, I am unsure how to proceed. I currently am hoping to learn c and to use it to write a utility for managing multiple ttys with simultaneously different DEs and WMs on a linux system but I feel this project is too ambitious for my novice self. Are there any projects or advice y'all have, any would be greatly appreciated. Anyway regardless I hope you are doing well :)
- Baldbvrhunter 3y agostart doing
- pabs3 3y agoPick a FOSS project that you use, check out its source code, fix a problem that affects you and contribute the fix back to the project. After doing that for a while, check out the internships and bounties sections of the FOSSjobs wiki for opportunities to get paid for contributing to FOSS. https://github.com/fossjobs/fossjobs/wiki/resources https://github.com/fossjobs/fossjobs/wiki/resources https://www.fossjobs.net/ https://www.fossjobs.net/
- Void_Kitty 3y agoThanks, I will definitely do that
- beardyw 3y agoYes, building something is key. But you would do better to build something easy well than something complex and fail.
- Void_Kitty 3y agoAny recommendations for a easy project?
- az09mugen 3y agoFrom personal experience, start with something small (max a few 100s lines) but that can improve your everyday life (work or personal) so you can stick to it. Identify your need, think what functionality could solve it, then decompose the solution and read some doc.
- Void_Kitty 3y agoAwesome thx
- brudgers 3y agoMy hope is to contribute to the FOSS ecosystem as a developer This is too vague to be worthwhile as a course of action. write a utility for managing multiple ttys with simultaneously different DEs and WMs on a linux system This is a concrete goal. I currently am hoping to learn c and to use it to This is an excuse for not executing on the concrete goal. Start writing the tool in Javascript, C#, Python, Racket whatever is easiest to execute in...and they are each and all hard because programming is hard. Because starting to write code is how you learn to write code. And the simplest way to contribute to a FOSS project is to write some code yourself and make it FOSS. Good luck.
- shrimp_emoji 3y agoI would start with Python (or maybe Java) and then graduate to C. And, if you ever mess with C++, don't let it fool you that it's an easy/beginner language; it's actually the hardest and deepest language of them all, masquerading as a shallow pond. ;p
- sn9 3y agoHtDP [0], CS50x [1], and whatever strikes your interest from teachyourselfcs [2], in that order. Also highly recommend the book for nand2Tetris after CS50. [0] https://htdp.org/2023-8-14/Book/index.html https://htdp.org/2023-8-14/Book/index.html [1] https://www.edx.org/learn/computer-science/harvard-university-cs50-s-introduction-to-computer-science https://www.edx.org/learn/computer-science/harvard-universit... [2] https://teachyourselfcs.com/ https://teachyourselfcs.com/
- Void_Kitty 3y agoThank ya, imma do dat