TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Moving from tiny websites to serious tech skills?

121 点作者 neonnoodle超过 3 年前
I’m a self-taught web coder and have made some small CRUD systems for very targeted tiny clients during my professional life. I have also made a few hobby sites for fun just for myself.<p>I’d like to expand my skill set but I have trouble visualizing all the moving parts of a “big” web app and all the tools that go into it—when people talk about containers, or testing, or deploying such-and-such, I don’t have a clue. With HTML&#x2F;CSS&#x2F;JS, I can spin up a little demo to play around and learn on another personal&#x2F;toy project, but how do I, as a solo person, learn about larger-scale technologies?<p>I’m a visual artist and print-based technician so front-end would probably be the place to focus. Is there a recommended path for going from hobby projects &amp; small sites to larger-scale best practices in React&#x2F;another important platform?

37 条评论

Pandabob超过 3 年前
I&#x27;ll give this a shot:<p>1. Learn React and Typescript. React has taken root in the enterprise and it seems to be the frontend equivalent of Java.<p>2. Learn about CI&#x2F;CD: Github Actions is a good starting place. If you&#x27;re hosting your projects in something like Vercel, try running separate staging and production environments.<p>3. Look at popular open source frontend projects. The newly released Supabase dashboard[0] seems to be a pretty good starting point to figure out modern best practices. Excalidraw is another[1].<p>4. Frontend masters has some pretty good courses regarding React and enterprise Typescript. Would give those a try (the price is $39&#x2F;month).<p>5. Where I&#x27;m from (Finland) Spring Boot (Java&#x2F;Kotlin) seems to be the most popular backend framework. Node and Python frameworks share the second place. If you want to learn backend, I&#x27;d suggest picking one of those three. Rails if you really want to.<p>6. At some point you&#x27;ll probably want to work with AWS. If React is the Java of the frontend then AWS is the Java of infrastructure.<p>7. It&#x27;s never a bad idea to know SQL.<p>[0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;supabase&#x2F;supabase&#x2F;tree&#x2F;master&#x2F;studio" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;supabase&#x2F;supabase&#x2F;tree&#x2F;master&#x2F;studio</a><p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;excalidraw&#x2F;excalidraw" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;excalidraw&#x2F;excalidraw</a>
评论 #29693900 未加载
评论 #29695340 未加载
johncoltrane超过 3 年前
You won&#x27;t get there if you stay solo, so get hired, join a team and learn as much as you can from your peers. Large-scale is team-scale.
评论 #29692295 未加载
评论 #29692588 未加载
评论 #29692430 未加载
评论 #29694919 未加载
评论 #29692513 未加载
评论 #29693079 未加载
评论 #29692288 未加载
krisoft超过 3 年前
I don’t want to discourage you, but why do you want to learn these “large-scale” technologies?<p>Tools are tools. They solve some problem. Many of the large-scale companies have problems you as a single frontend developer might not. If we better understand what is your motivation maybe we can better advise you which techniques are worth your time.<p>Are you interested because you would want to join a big company? Then it is a question of how to get a portfolio which you can use to get through the filters.<p>Are you interested because you have trouble keeping up with some aspects of your solo developed projects?<p>Are you perhaps feeling that your simple solutions are bad just because they are simple? In that case it is important to know that what is best practice for a team with 200 developers might be a terrible waste of time for an individual.
评论 #29693821 未加载
评论 #29693106 未加载
have_faith超过 3 年前
Being autodidactic myself the best method I&#x27;ve found is to simply over-engineer your personal projects for the sake of learning. I have side projects that I&#x27;ve never even launched that are built using whatever I could find as &quot;best practice&quot; for solving that particular problem at scale.
评论 #29693335 未加载
评论 #29693825 未加载
Mave83超过 3 年前
Simple, you usually don&#x27;t need that. Most devs now a days don&#x27;t know how to build efficient websites. That&#x27;s why they need a tech Stack like the Mount Everest and create a dependency hell. It was possible to serve more then 250k unique users per day from a single VM more than 10y ago on shitty hardware. You can deliver so much more on modern tech if you stick to KISS principle.<p>But yes, some rare sites do need to scale above &gt;1M unique users, that&#x27;s where the trouble begins. You can start by benchmarking everything you build. Think of every line of code and optimize it, or you just build your stack in smaller pieces and scale out using modern tech Stack. The question is, what do you want to learn. The first way would learn you how to build efficient software, the second one would teach you how to waste lots of resources but be new, modern and a hipster. And in addition, now a days employees are so expensive, that a company don&#x27;t care about Cloud costs if this makes dev faster.
评论 #29695964 未加载
burlesona超过 3 年前
I started almost exactly where you were about 12 years ago. Came from a graphic design background, knew HTML and CSS really well, was decent at client side JS. I knew some PHP from hacking on Wordpress sites, but struggled to grok the rest of the web.<p>The best thing I did was grab a Rails book and study it, building the sample project all the way through. Then I came up with a web app I wanted for myself and built that using what I had learned. This took some time, but taught me so much. First, it forced me to learn another ecosystem, which made me much more aware of what was “common” or “universal” among web applications versus what was environment-specific. It also made me learn a new language, which similarly gave me a much better understanding of how computer programs work (seeing the same basic things implemented differently helped me understand the fundamental concepts that every language is abstracting over).<p>I would definitely still recommend this approach today, specifically because Rails is such a well-documented full-stack framework, it’s really easy to learn. Start here: <a href="https:&#x2F;&#x2F;www.railstutorial.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.railstutorial.org&#x2F;</a><p>Another advantage is Rails is the tech underlying many of the web giants (GitHub, Shopify, AirBNB, etc), and the Ruby ecosystem inspired many of the other cool new technologies out there today. Even though it’s not the “hot new thing” anymore it’s extremely marketable. React devs are a dime a dozen, but people with Rails experience are in high demand and much harder to find.<p>The last thing is you just need to get a job at a place with other good engineers who can mentor you. Ultimately everything else is just getting your skills up enough to get in the door, once you clear that hurdle you’ll be able to learn as you go.<p>Best of luck on your journey, it’s hard work but very, very rewarding! Happy to answer questions if you have any :)
evolve2k超过 3 年前
Hey I am also a coder and designer. My strong suggestion; actively seek the ‘seam’ where art&#x2F;design and code meet.<p>You’ll have more success (and fun) doing things where you can leverage your creative skill alongside your code learnings.<p>One source of deep admiration for many Ruby programmers was the artist&#x2F;coder “Why the Lucky Stiff”. They created digital works of art that were a serious of small coding projects most of them fun, a couple highly useful.<p>The seminal book “Why’s Poignant Guide to Ruby” (<a href="http:&#x2F;&#x2F;poignant.guide" rel="nofollow">http:&#x2F;&#x2F;poignant.guide</a>) is still a beautiful read. Pair it with the website Try Ruby (<a href="https:&#x2F;&#x2F;try.ruby-lang.org" rel="nofollow">https:&#x2F;&#x2F;try.ruby-lang.org</a>) and you can plug in the examples from the poignant guide as you read along.<p>I’d recommend learning Hotwire and Rails 7 and then making small Rails apps to create small artistically interesting sites.<p>Ruby and Rails is highly attractive to people who value asthetics and beauty, and helps you integrate your creative impulses with how you code. Most languages don’t account for or attempt to address beauty in how you code. It’s by no means necessary but has been delightful for me finding a language and community that often highly values deep inner creativity along side coding principals.
throwaway984393超过 3 年前
Take a gander at MediaWiki <a href="https:&#x2F;&#x2F;www.mediawiki.org&#x2F;wiki&#x2F;How_to_become_a_MediaWiki_hacker" rel="nofollow">https:&#x2F;&#x2F;www.mediawiki.org&#x2F;wiki&#x2F;How_to_become_a_MediaWiki_hac...</a> <a href="https:&#x2F;&#x2F;www.mediawiki.org&#x2F;wiki&#x2F;New_Developers" rel="nofollow">https:&#x2F;&#x2F;www.mediawiki.org&#x2F;wiki&#x2F;New_Developers</a> It&#x27;s the code of Wikipedia, which is a big honkin&#x27; scale, mostly-modern web application. Read through those pages, join their IRC channel, ask them how you might get involved from the perspective of your current experience. The fantastic thing about open source websites is you don&#x27;t have to &quot;get hired&quot;, you just pitch in! :) And if you do contribute, it&#x27;s great experience for your resume.<p>You can also look around for overviews of web architectures. You&#x27;re gonna wanna lean about software design&#x2F;architecture in general, and branch out to learn about all the components of a modern web application. You can find all the components used in MediaWiki I&#x27;m sure!<p>Personally I&#x27;ve been wanting to learn how to build Progressive Web Applications so I can make some apps for my phone without having to learn Java.
ufmace超过 3 年前
In addition to the many other suggestions here, there&#x27;s plenty of ways to practice improving your current apps. Some examples I can think of from your description:<p>How are you doing deployments right now? Do you have a bunch of manual steps that have to happen in the right order, can you do a rollback quickly if you have to? Try learning some better deployment technologies that fix those problems. You might not have been bitten hard by any of them yet, but you never know when it could happen.<p>How about logging and monitoring, have you integrated with any tools that could allow you to monitor performance and error rates from all of your sites? That&#x27;s also worth doing if you haven&#x27;t already.<p>Are you using source control best-practices and CI&#x2F;CD systems? Are your repos set up such that a new contributor could get onboarded to them easily? If not, do that. Try spinning up a VM or something and getting your repos set up on them, and fix or clarify as many manual steps as possible.
menor超过 3 年前
I was like you 7 years ago (graphic designer and did some small websites), and best thing I did was taking my savings and doing a coding bootcamp (Dev Bootcamp in SF).<p>It helped me understand what stuff I still needed to learn, and how to work in a team. Also helped my confidence, seeing that I was able to work with other people, some of them had already jobs as programmers, and solve problems with them.<p>After that I decided to work for others, but I could as well had continued doing frontend master courses and stuff like that, I think the Bootcamp taught me the &quot;glue&quot; between technologies, and how to think like a programmer.<p>There are a lot of online Bootcamps now, so no need to go to another country like I did, I&#x27;d look for some bootcamp where you work together with other students, and that has great mentors with industry experience.
mellosouls超过 3 年前
As others have said, the best path is to join an organisation building those things, but if you insist on<p><i>as a solo person</i><p>There are plenty of good resources online, free and paid. Paid options like Pluralsight have the most easy to find quality curated content that can guide you; alternatives like Cloud Academy will give you hands on labs.<p>That&#x27;s obviously in addition to the endless stuff on YouTube (the difficulty here is separating the wheat from the chaff) and in books and articles.<p>Only by diving into dedicated, expert resources like those will you get the context, but mentoring within a team will be the fastest and surest way to competence on larger systems. Look for a job in a team.
NicoJuicy超过 3 年前
I&#x27;m a solo coder in my private time and work at a big Enterprise full-time.<p>Keep it simple for your own. Use git, but you don&#x27;t need CI. ( VS has an awesome publish option for example)<p>Know the tools you know and use them required. Sometimes there are frameworks that help you speedup coding *5 ( eg. A screenshot from a web page is much easier through node), but i know c# the best. So 85% of my projects are in. Net.<p>If you don&#x27;t know a backend framework. Consider RoR because of it&#x27;s scaffolding. Do you work on Windows, give Visual Studio community a try. Pick a framework that is batteries included ( registration, login ) without jwt in the beginning.<p>For my projects after work, using asp.net MVC with EF and using scaffolding is a 500% quicker turnaround ( easy) than using any SPA framework.<p>Don&#x27;t do cloud, it&#x27;s expensive and for enterprise. Self-Host with a cheap VPS. Maintenance isn&#x27;t as much as many claim. Implement some security measures! ( Private key ssh, firewall ( is always free)... )<p>What&#x27;s your goal? Create your projects as cheap as possible and as fast as possible, if it doesn&#x27;t gain traction. Then you could take above into consideration and use boring technology ( <a href="http:&#x2F;&#x2F;boringtechnology.club&#x2F;" rel="nofollow">http:&#x2F;&#x2F;boringtechnology.club&#x2F;</a> )<p>Is it purely to learn? Do some certifications about the cloud and spend halve a year learning non transferable skills with vendor lock in ( AWS, Azure, GKE, ...)
vasco超过 3 年前
Since other comments already point to getting a job, I&#x27;d mention other options. One is going to university and being exposed to more technologies and most importantly, meeting other people and working with them. Other similar options are going through the syllabus yourself and partnering with other people in hackathons or similar group events.<p>I would like to also offer a different perspective on the idea of &quot;big&quot; web apps or more &quot;professional&quot; setups. If what you want is to be able to do more complex projects for your customers or for yourself, just do that. Solve the problems you need to accomplish your goals. Maybe your development cadence could improve from getting better at testing. Maybe you&#x27;re not happy not knowing how to maintain or deploy your code. Focus on your path and your problems and forget about what you &quot;should&quot; be doing. That&#x27;s how most people become proficient engineers. Meanwhile keep up with industry news and read a few books per year, and know that the best way to really kick this into overdrive is working alongside more experienced people in a team.
jmagaro88超过 3 年前
How about contributing to an open source code base for a backend or frontend web framework? Since a lot of these projects are built with scaling in mind and have often reached complexities far beyond the capabilities of a singular developer to write himself, learning how they work in depth can give you the opportunity to significantly &quot;level up&quot; your skills in an area adjacent to HTML&#x2F;CSS&#x2F;JS.<p>If you don&#x27;t know where to begin, you can start by reading the issues and pull requests for the project on GitHub, where there is often a discussion of how to solve problems from multiple different perspectives. When you&#x27;ve lurked around for a while and feel like you have something to say, consider commenting and starting communication with other people working on the project. When you hang around long enough and even start making pull requests of your own, you&#x27;ll have newfound expertise and new contacts to ask questions who might already be experts in the technology you wish to become an expert in.
kettleballroll超过 3 年前
Yo! I&#x27;m mostly doing back-end development as a hobby and to learn some new tech (ai researcher by trade), and I&#x27;m looking to join forces with a front end person to work on larger projects. Shoot me a message if you&#x27;re up to it, we can explore this space together. (Mind you, I&#x27;m doing this as a hobby, so time commitment varies a lot.)
getup8超过 3 年前
I’m a fan of just learning as you go. It sounds like you’ve built relatively simple apps so maybe try to build something more complex, even if a “stupid” idea.<p>Try React or Vue with some database component and go from there.<p>And before you start, look up a resource for how to write good tests with the tech you choose, and work on that as you go as well.<p>Good luck!
davesailer超过 3 年前
I started reading the following a couple of nights back. Might give you some help if you haven&#x27;t already seen it:<p>The Passionate Programmer (2nd edition) Creating a Remarkable Career in Software Development by Chad Fowler <a href="https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;cfcar2&#x2F;the-passionate-programmer-2nd-edition&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;cfcar2&#x2F;the-passionate-programmer...</a><p>You can check it out before buying at either of the following:<p><a href="https:&#x2F;&#x2F;www.pdfdrive.com&#x2F;search?q=chad+fowler&amp;pagecount=&amp;pubyear=&amp;searchin=&amp;em=" rel="nofollow">https:&#x2F;&#x2F;www.pdfdrive.com&#x2F;search?q=chad+fowler&amp;pagecount=&amp;pub...</a> OR <a href="https:&#x2F;&#x2F;u1lib.org&#x2F;s&#x2F;chad%20fowler" rel="nofollow">https:&#x2F;&#x2F;u1lib.org&#x2F;s&#x2F;chad%20fowler</a>
BackBlast超过 3 年前
Front end scales marvelously. Distribution is easy and cheap. Learn whatever front end framework you like best and learn to make a fat client that does most to all of the heavy lifting in the client.<p>Scales wonderfully.<p>Scaling backend data structures is a difficulty itself and potentially different for every problem.
Nextgrid超过 3 年前
This really depends what you want to achieve.<p>A lot of &quot;serious&quot; tech skills is either cargo-cults building engineering playgrounds to benefit their own career - they are truly only necessary in very narrow cases you&#x27;re unlikely to see unless you operate at actual FAANG scale (VC-funded FAANG wannabe doesn&#x27;t count).<p>If your intent is to work at FAANG or a FAANG wannabe building engineering playgrounds then fair enough, these skills would be useful, however if you want to learn to solve your own problems keep in mind that most of the cargo culting is not necessary; I suggest you learn solutions as you encounter actual problems and it&#x27;s fine for these solutions to be old-school and &quot;uncool&quot; such as Rails&#x2F;Django or God forbid, PHP.
assuringllama超过 3 年前
I am a self-taught software engineer back in 2016. After launching my first SaaS, I realise for me to grow, I need to learn from people way better than me. I manage to find my first software engineering job in 2017 and never look back.<p>I believe the best way to learn is from people better than you. The problem with small projects is that it never make it to the point where certain skills&#x2F;practices become important or even critical.<p>In this spirit, my recommendation is in this order: 1. Get a job. Learn how to work in a team. 2. If for some reasons, this is not possible, watch conference talks especially on those problems faced by big companies, and what do they do to solve it. Learn about this problem, and figure out other ways.
hnarayanan超过 3 年前
I’d be happy to mentor you if you’re interested. My profile here has information to get in touch.
haolez超过 3 年前
I would invest in learning Rails 7 and Hotwire. Seems to have a great ROI for the effort put in. It can scale pretty far as well and you will be able to focus more time on delivering value.<p>The technical excellence road has a lot of dead ends and false prophets. Be aware!
评论 #29692691 未加载
评论 #29693455 未加载
hackandtrip超过 3 年前
After ~2y of professional experience, I don&#x27;t think that there is huge hard skill gap between non-professional and professional devs.<p>The biggest thing is understanding that you may work on a single tool in ~10&#x2F;100 people, so you must develop and work with other people in mind. So, modularity, enforcing code clarity and writing good tests, understanding product decisions and so on... Personally, I learnt this stuff on the job pretty fast - still newbie, but can autonomously solve medium&#x2F;complex projects without senior help, which should be a base goal.<p>Larger-scale technologies is mostly larger-scale organization - just apply to one of those and I am sure you&#x27;ll catch up fast
simonbarker87超过 3 年前
Sorry to self promote but you might find some of the blog posts in my site helpful: <a href="https:&#x2F;&#x2F;CareerSwitchToCoding.com" rel="nofollow">https:&#x2F;&#x2F;CareerSwitchToCoding.com</a><p>One of the main things I would say is that nothing can really prepare you for the jump because a large web app made by many developers over years is a very different kettle of fish to your own small projects.<p>That said, making and deploying your own things start to finish gives you a great foundation to build from, your core skills will be fine, you will just need to learn how to orientate yourself in a big app and that’s a skill you learn through doing.
thecleaner超过 3 年前
Yes there is a path forward. As others have said learn react +typescript. You might also want to pick up redux. Try to create performance visualisations with d3 as plotting data is a different ball game compared to your normal web development. More generally learn how to create great interactive visualisations. You can also look at other advanced techniques like crdts and their use in making shared text editors. Then you have some very serious chops. Best of luck, I hope to see another great engineer added to the delightful world of frontend development.
aristofun超过 3 年前
No pure “learning” experience will give you “serious” tech skills. Not to mention that 99% of tutorials and courses out there are for beginners.<p>Good Large-scale best practices are always born out of specific practical challenges<p>And the only way to face this kind of challenges is to join a real world project, team, company.<p>Try to score as complicated job as you can with your current skills (in terms of technical challenges) and then move up the ladder.
imajoredinecon超过 3 年前
Find an interesting open source project with active and friendly maintainers (this might take a bit of looking). Figure out how to check out and build the code, then choose an open bug and fix it (or find a small open feature request and implement it). This will require learning how to read code in a bigger codebase and make targeted changes, which is basically the first thing you need to be able to do as a software professional.
eyelidlessness超过 3 年前
Definitely learn specific technologies and methodologies. But also look for mentorship. It doesn’t have to be formal at all, find people whose work and&#x2F;or talent you admire and learn from them. Don’t be afraid to help them learn too, you probably have a lot to share too.<p>This, more than any particular tech or approach, helped me more than anything. Just working with and learning from&#x2F;with really talented people.
baalimago超过 3 年前
A lot of the web stack is analogous to &quot;real&quot; stuff.<p>Practice your database skills by implementing some project using indexedDB [1]. Practice your parallelization&#x2F;efficiency skills by implementing some webworkers [2]. Practice your IAM skills by implementing some oauth2 API for some website [3]. And so forth.<p>Look here [4] for most (if not all?) the web stack things which you could experiment with, many of which will reflect back at &quot;the real thing&quot;. I&#x27;ve done this and it introduces concepts in a good way. It also forces a &quot;natural&quot; progression towards backend when you have to deal with stuff like https&#x2F;self signed certificates, websockets and so forth.<p>[1]: <a href="https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;IndexedDB_API" rel="nofollow">https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;IndexedDB_A...</a> [2]: <a href="https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;Web_Workers_API" rel="nofollow">https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;Web_Workers...</a> [3]: <a href="https:&#x2F;&#x2F;developers.google.com&#x2F;identity&#x2F;protocols&#x2F;oauth2" rel="nofollow">https:&#x2F;&#x2F;developers.google.com&#x2F;identity&#x2F;protocols&#x2F;oauth2</a> [4]: <a href="https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API" rel="nofollow">https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API</a>
xwolfi超过 3 年前
Hum honesyly container: use them for like bittorrent (rtorrent&#x2F;sonarr) and you ll get how they work, testing: absolutely add tests to whatever you were doing before, and deployment is trivial if you understand running from cli.<p>Tbh at work I see people who can deploy a container on the cloud but have no clue how to start the program quickly to check something lol, so ...
replwoacause超过 3 年前
Have you thought about learning some low code tools that could get you into a position of deploying a web app quicker, albeit placing some limitations on what you can achieve? The limitations you encounter may be acceptable to you considering your goals and this way you’ll have something to show for your effort in much less time.
celim307超过 3 年前
There’s also “levels” to the scale of stuff you wanna learn. You can learn deployments, testing etc that will carry over from small teams up to huge big tech size teams, but I’ve worked on projects with 200+ active maintainers and the problems there are different than problems and architecture you would find in a team of 10
fayazara超过 3 年前
I think the best way to achieve this is to either join a tech heavy product based team or keep building side projects and I mean like proper projects and make a saas out of it. This coul cover a lot of use cases for you.
peanut_worm超过 3 年前
For me it was getting a job and seeing how an actual company does things
mr_toad超过 3 年前
Get an AWS&#x2F;Azure&#x2F;GCE account and play around with the technology. There’s plenty of tutorials on how to set up K8’s etc, and you get free credits that you can use for testing.
didip超过 3 年前
Software is like water. It fills up whatever medium provided.<p>The easiest way find and learn big tech is to work for a big-ish tech company with a big problem to solve.
felipemesquita超过 3 年前
I think Ruby on Rails might be a great framework for incrementally learning the complex parts of a serious web app. I would recommend you check out DHH’s recent tour of the framework’s seventh version, and if you like it, check ou the Rails for Beginners video series by GoRails on YouTube, or Michel Hartl’s Ruby on Rails Tutorial book.