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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: What tech stack to choose in my first stint as a freelance developer?

28 点作者 romanovtexas将近 8 年前
I just got my first project as a freelance developer, and I am unable to choose a tech stack. Some background - I&#x27;ve worked with Enterprise Java and C# for a few years now, so I am fairly comfortable with these two languages. But I have never worked with any of the hottest technologies including languages and frameworks like Python&#x2F;Django, Node, or RoR. I also will need a deployment solution, and I am unable to choose between IaaS like AWS&#x2F;Azure&#x2F;GCP or just to go with PaaS like Heroku, since I have never worked with any of them.<p>Should I explore new frameworks in something I know (Spring&#x2F;Play&#x2F;DropWizard with Java) or choose to go with something that I haven&#x27;t worked with in order to learn new tech as I am developing?

13 条评论

jmcgough将近 8 年前
Go with what you know can get the job done. It&#x27;s fun to use new tech, but Java isn&#x27;t going anywhere and it&#x27;s very stable and performant at this point.<p>Your concerns should be the following:<p>1 - will this stack get the job done, and at a reasonable velocity<p>2 - will you lose time because you need to ramp up on a technology you&#x27;re not familiar with<p>3 - how maintainable will this be for developers who come after you?<p>Spend time figuring out what you&#x27;ll need to accomplish for this project, and then decide which framework will work best for it.<p>If you&#x27;re still not sure what to go with, it can be really worthwhile to do a quick proof of concept that covers the areas you feel most uncertain about. I did this before choosing Elixir for a recent project, and it helped me feel a lot more confident in that choice.<p>Outside of your freelancing, I&#x27;d encourage you to spend time using new tools are frameworks. That way, you&#x27;ll know the strengths and weaknesses of each before you need to pick one for a project.
评论 #15100656 未加载
hakanderyal将近 8 年前
When I&#x27;m looking for a new project, I analyse these 3 aspects: Client, Domain, Tech Stack. My experience taught me that, I can only handle one unknown aspect among these in a project, more becomes a problem sooner or later.<p>- If the project is for a new client that I have no connection beforehand, I only work on a problem domain that I&#x27;m familiar with, and I use a stack that I&#x27;m confident in.<p>- If the project is in a domain that I&#x27;ve no experience, but I know the client, I go with the tech stack than I know I can get the job done.<p>- If the project is for a client I know, and I have experience with the problem domain, I let myself to choose a new stack to learn if there is one that&#x27;s suitable for the project.<p>I&#x27;m having great success with this strategy. Obviously these are just general guidelines, and the specifics of the projects can affect my decision, and common sense always applies.
rl3将近 8 年前
Most of this depends on your project&#x27;s requirements.<p>PaaS is much simpler for you as a developer, assuming your desired stack is supported. Caveat is it will likely cost your client more. Although, it may not if you account for billable hours saved by not having to deal with IaaS. Depends on the project&#x27;s scale and resource usage. With a small scale project, PaaS may be a wash or even cost less.<p>Obviously it&#x27;s good to expand your horizons learning new technologies. Doing so while under deadlines on someone else&#x27;s dime, perhaps not as much. It&#x27;s at least something to consider if there&#x27;s very lax deadlines. How to bill it ethically is up to you and likely depends on a ton of factors.<p>Using modern frameworks in languages you already know does seem to be a good compromise. Your learning curve there should be drastically lower than learning an entirely new stack from scratch. This is probably the safest route, and if you choose it I&#x27;d suggest learning new stacks on your own time regardless.
Nysa将近 8 年前
I&#x27;am assuming you are &#x27;just&#x27; developing solutions. Your customers are only interested in a product - not tech side.<p>So, your goal should be: &quot;How I can develop (and maintain) this product in the most efficient way?&quot;.<p>Step 1 : Get stable grounds<p>Pick a language that can solve most of common challenges that you will tackle. Make yourself proficient in it. You need to minimize time spent on thinking &quot;how I can do it in X language?&quot;. (You&#x27;ve got Java&#x2F;C# skillset so most of your web skills should be around here).<p>Step 2 : Optimize<p>You&#x27;ve got another web project? That&#x27;s great! You just need to pick up template with all boilerplate (like: logging, monitoring, deployment, auth etc.) from last project and fill missing features.<p>Step 3: Extend<p>Now, you can finish most of your projects in seconds. It&#x27;s time to find new clients. Search for new domain - like: mobile, embedded or machine learning. This time you can decide if your existing toolset is enough for new problems or rather, adding new one will be more beneficial to you. Like: You can do a lot of ML stuff in C# but Python is the place where all important stuff happens.<p>PS:<p>IaaS vs PaaS<p>Here is question for you:<p>Do you like to do more admin stuff for low cost hosting?<p>Or do you like to focus on coding and spent a bit more money and let cloud do most of admin work for you?<p>It&#x27;s a your time vs money optimization.<p>Personally, for small (scale) project I&#x27;am running with IaaS - but I already have knowledge how to do it. For big ones - it&#x27;s better to stick with PaaS - even very skilled DevOps can&#x27;t single-handedly deal with big scale.<p>For you I would advise using PaaS since you don&#x27;t have experience with neither PaaS nor IaaS. PaaS is a lot easier to learn and you can always migrate your code to IaaS as a Step 2 :)<p>Good luck and have fun.
aregsarkissian将近 8 年前
As a longtime and current asp.net developer I use the Laravel php framework for client work and side projects. Modern php is very easy for a java or c# dev to pick up. Development speed and ease of deployment is what matters and Laravel is a mature batteries included rapid application development framework with a large community and ecosystem and even it&#x27;s own hosting platform Laravel forge.
评论 #15100663 未加载
评论 #15098701 未加载
seanwilson超过 7 年前
Use the stack that makes the project as easy, robust and low maintenance as possible taking into account risks involved in anything new you have to learn along the way. Sticking to only what you know can make life harder for yourself as well and means you&#x27;re not expanding your skills.<p>If you&#x27;re highly skilled in Java and C# you&#x27;re not going to find it challenging to pick up Python or Rails. Heroku is a great choice for a freelancer as well as it&#x27;s so low maintenance by a large margin in my opinion compared to something like AWS. You certainly want to avoid things as low level as VPSs as well. Personally I think you should take a couple of days to experiment with Heroku so you can see there isn&#x27;t really that much to it.
dabockster将近 8 年前
Depends. If it&#x27;s a new project, choose the oldest thing that&#x27;s still widely supported. Often times, this will be something like straight Java or PHP. It&#x27;s not trendy at all, but it will run under 99% of system configs out there. Also, be sure to document your work as much as possible and give that documentation to whomever you&#x27;re turning your work over to.<p>If you&#x27;re taking over another project, make sure the client has docs before you take it on. Otherwise, there&#x27;s a good chance that you won&#x27;t be able to deliver what they want. Best to avoid those customers initially (if you can).
zengid将近 8 年前
If this is your first stint, you&#x27;ve got a lot riding on this reputation-wise. You need to hit every deadline you set, and it needs to work the first time. It would be best to use the most familiar (and yes, boring) stack you can possibly use [1]. The client does not care at all what is under the hood: they care about whether the product does what they want it to do.<p>[1] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12788804" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12788804</a>
richardknop将近 8 年前
Learning new tech is good of course but I wouldn&#x27;t overdo it. It is also important to have some specialization and skills that you focus on.<p>It also depends on your clients, they will most likely be making the call based on the tech they already are using in their current stack and their tech employees. So when they bring in a consultant they will want to keep in line with their in-house tech stack not to complicate future maintenance and hiring.
AlexAMEEE将近 8 年前
In my opinion you should know Spring MVC ( or boot ) as a Java freelancer.<p>I&#x27;d also go with Spring because they have a huge market share and many projects require Spring knowledge.<p>By knowing Spring you are expanding the circle for possible clients.<p>Play&#x2F;Dropwizard are nice frameworks but they don&#x27;t bring you any value as a freelancer because nobody will require knowledge&#x2F;experience in those frameworks.
ganeshkrishnan将近 8 年前
I would highly recommend jhipster. We used that build our highly scalable website aihello.com<p>It builds the core of project using spring boot and also generates docker and kubernetes files. Entities are easy to create and the &#x27;business glue&#x27; is auto generated.<p>It even integrates Kafka which allows us to plug-in machine learning framework via Apache spark<p>Overall very happy with the framework
评论 #15096781 未加载
fiftyacorn将近 8 年前
Id check the rates offered and choose the one that pays the most
probinso将近 8 年前
Happiness on F sharp