4 ms·
Self Taught Promgrammer?
If you had 9 months to be a semi-competent programmer with no CS background, what would be your plan of attack?
- advael 2y ago"Competent" is subjective enough, we needn't add a "semi-" to it Programming is a huge field and no one's good at all of it. Also, people learn really differently. I like learning by building dumb little projects, because I'm super hands-on and like working from the ground up. Other people I know swear by trying to fix issues in open-source projects because it starts you off working from something that's already there and seeing how your changes can affect something. I know at least one self-taught programmer who got there by literally just reading programming language documentation and tutorials and textbooks for an hour every day for months on end, fitting in math or computer science reading from whatever's publicly available. I didn't believe them at first. Then I thought they must be some kind of alien. But no, some people actually do learn stuff abstractly and then apply those abstractions instead of actually having to go get their hands dirty. I've met people who like one programming language and have found ways to attack every problem with it no matter how bad a fit it seems to me. I've met people who literally don't care what language they're using and learn it as they go on every project I think identity is a scam. To "be a programmer" is a nebulous goal. You should think about what you want to do, and what skills you need to build to do it. If your goal is to know how computers work, get you a non-restrictive OS and start fucking around with a computer. If your goal is to make software, try to make some software and see where the pitfalls are. If your goal is to get hired, learn how to politic with businessers and then fill in the technical skills that are most strategic for the business you want to get your foot in the door with
- burnttoast300 2y agovery thought provoking. For me my goal is to be able to build out MVPs of ideas that I have. My learning style isn't abstract -- I need to get in the weeds. Seems like the best approach may be to start with tutorials then move on to open source
- advael 2y agoTo be honest, I would lean toward making small projects for that goal, but that might be my bias. Taking things from zero to one is a much different endeavor than fixing stuff or adding features in an existing project, though the benefit of the latter is that you get to see how other people are handling certain problems and interact with those patterns while trying to do whatever you're doing in the context of them. The skills will transfer either way, but the design of a feature can be a lot different from the design of a standalone application
- burnttoast300 2y agoas far as interactive programs for beginners, any reqs?
- advael 2y agoGimme a small website with 3 endpoints: website.domain/deep website.domain/wide website.domain/show Both "deep" and "wide" should record a list of every IP address:port combination that hits the URL, as well as a timestamp and a random 2-digit base64 number generated when they hit the site. They should redirect the user to "show" Keep addresses from the "deep" list for 7 days, and the "wide" list for 12 hours, removing them from the list when this time limit runs out On "show", if the current viewer's random number matches someone from the "deep" list, show that entry on the page, with its IP address as well as the timestamp, in red. Whether or not there's a match, show the entire "wide" list, including the IP address, random number, and port, but not the timestamp, and randomize the order in which they're shown. If someone hits "show" and their IP is on neither list, put them on the "deep" list anyway Make this display as aesthetically pleasing as possible. Use any language or framework you like
- JohnFen 2y agoI'll answer this from my own experience, as I'm a self-taught dev. I learned (and still learn) using a three-prong approach: I read a lot about the skill I'm learning, I examine code written by others that does what it is I'm learning to do, and I practice a lot. I still continuously do all of these things to this day. If I were starting with no experience, I don't know if that approach would get me to semi-competency in 9 months or not. Some of that depends on what exactly "semi-competency" means. But when I learned to program in the first place, it was about 6 months before I was able to write reasonably complex programs that worked properly.
- SavageBeast 2y agoStart doing the same thing you will regularly as a programmer. Pick a tool chain, download whatever tooling is required, get the tutorial project up and running. Next, start making changes. Use the tutorial project as a template to fundamentally build some kind of site/tool/app. Encounter barriers, Google and GPT your way to solving those problems. Start adding features and functionality. Rinse and repeat until you know enough to be dangerous. At this point you are now a "programmer".
- tithos 2y agoIt is a very, very big feild. Step one, find a specially, two, find your learning style, 3,4,5... build stuff! :)