4 ms·
Ask HN: Beginner dev wanting to learn full stack
I want to make a website where two people around the world can compete to quickly solve a given sudoku puzzle. []
I am mostly comfortable in C and python, with some experience making static web pages (html, css, vanilla js). However, I have no experience in modern backend web development (in particular no php or node).
Would love any recommendations you might have on where and what to learn.
Thanks.
[] Because it sounds like a fun project. Also my girlfriend is traveling abroad and this is something we did irl.
- DamonHD 4y agoMaybe stay above C, where relatively small errors may lead to serious security issues and/or crashes. And avoid running your first creation as root / privileged!
- startingout 4y agoof course :)
- amalgamated_inc 4y agoI think Phoenix framework with LiveView is very suited to implementing this. If you're optimizing for jobs, on the other hand, maybe Python or Node are better bets.
- startingout 4y agoThank you! looking into it. I'm actually employed writing C, just wanted to dab into web on the side :)
- amalgamated_inc 4y agoOh, cool :) Let me maybe elaborate why I like Phoenix, especially with LiveView. Traditionally in web dev, everything is centered around the HTTP request/response cycle. Browser sends a request to server, which renders a response page in HTML (or e.g. JSON if it's an API endpoint). This is very simple but has a bunch of mental overhead, since you need to fit every user interaction into this schema. It's also not well-suited for interactive pages like games, it really feels like a "website" not a "web application." Because of this, over the last 10 years, most companies/stacks have migrated to a frontend/backend split where the frontend is a SPA (single page app) typically written in JavaScript, using a rendering framework such as React. This allows you to do very interactive stuff and has enabled what we know as "web 2.0" with web apps as we know them. The downside is that you're now maintaining 2 code bases, you're learning two languages (or, worse, you're writing Node.js :) ), and you have to keep these 2 in sync. You've gone into the distributed systems business. The innovation of Phoenix LiveView is that everything happens on the server, and the server sends a diff back to a thin browser JS frontend that you almost never need to touch. So it feels simple and productive like an old-school web 1.0 app, except you don't even have to fit everything into the request/response cycle. Instead, there is a much simpler and faster "events happen -> you react to them -> re-render" cycle that doesn't require a page reload on the user's end. This allows you to make very interactive-feeling websites without all the ballast and overhead and headaches of maintaining a distributed systems and, frankly, touching JavaScript. As an example, check out this site I made with LiveView: https://livetyper.com/ https://livetyper.com/ There are certain limitations to this, it won't ever be as fully interactive as a locally-running SPA. But for anything but real games or maybe the most performance-hungry apps (think Figma), LiveView is totally fine and 1/10th the effort.
- startingout 4y agoThank you so much. Cool website btw.
- Scarbutt 4y agoCurious, what don't you like about JS/node.js? Don't see much difference to Python or Ruby, it's mostly the same for doing the server part of web apps but with JS you have the advantage of using only language since you are going to need need at least some JS for the browser.
- dang 4y agoSorry for the offtopicness, but would you mind emailing hn@ycombinator.com? I would like to send you a repost invite.
- nullish_signal 4y ago>where to learn chatGPT. In my case, "I have experience with Unity game engine and C#. I want to host a web forum. Can you please assist?" I started with an ASP.NET server at chatGPT's recommendation (which would have allowed my C# to translate) but soon found that only Linux servers allow SSH, which seems very very important. So I asked some more, and wound up with a Linux provider, using nginx to host. chatGPT was pretty helpful with Linux permissions, owners, fixing 404/301/403 etc Be wary of talking in circles about something chatGPT is unable or unwilling to tell you - Google and Stack Overflow are still here as backups when the chatbot doesn't "get" you. Plus, Google forces you to dumb down your questions, since chatGPT is perfectly happy answering to essays and short stories.
- mattmanser 4y agoHuh? This comment is a great advert of why you should talk to a real person instead of using chatGPT. First, there's no such thing as an ASP.Net server. Second, you can run ASP.Net on Linux. (Google "asp.net on linux"). Third, even if you didn't use linux and were hosting your asp.net application with IIS on Windows Server you simply RDP onto a windows server instead of SSHing. Hint, RDPing is much easier than SSHing for novices unless you want to pretend you're Cypher in the Matrix. It's basically like accessing another desktop from your machine, it has a full GUI instead of a CLI.
- nullish_signal 4y agoAnd this is a great advert of Useless Human Advice The forum works thanks to chatGPT's Psuedo-Correct advice, regardless of if I say "ASP.net server", and regardless if there are alternatives to ssh
- mattmanser 4y agoYou wasted a bunch of time going down totally incorrect rabbit holes.
- BirAdam 4y agoI recommend Ruby, and Ruby on Rails. It's great if you want to get up and running very quickly. Easy to learn, enjoyable to use, and the latest release is much speedier than previous versions. There are tutorials scattered all over YouTube and such, but one that I found "fine" was https://www.youtube.com/playlist?list=PL6SEI86zExmsdxwsyEQcFpF9DWmvttPPu https://www.youtube.com/playlist?list=PL6SEI86zExmsdxwsyEQcF...
- jesuscript 4y agoIf you know python go learn Django. Keep doubling up on top of things you know, that way you will stop feeling like a perpetual beginner.