16 ms·
Sorry if offensive or presumptuous, I assume you are max. 30 years old? Being a freelancer the last 5 years (previously doing webdev part-time for 15 years) an
by kugelblitz 7y ago
Sorry if offensive or presumptuous, I assume you are max. 30 years old?
Being a freelancer the last 5 years (previously doing webdev part-time for 15 years) and having a couple of long-term side projects, I've been "burnt" enough that I've gotten tired of chasing shiny tech, just for it to become abandoned (e.g. bower, grunt, AngularJS) or introduce big breaking changes (e.g. some upgrade paths in PHP's Laravel or Symfony).
Using Python with Flask was a breath of fresh air (ironically because it's "boring") and trying to keep setup / infrastructure overhead low in the frontend (e.g. using good old Bootstrap, combined with Parcel.js) has reduced debugging significantly so I can focus on developing features. Instead of shiny new tech, I can actually present shiny new features.
It's important to know of the new tech, but I think diving deep into new tech just because it might seem cool now can be frustrating and inefficient long-term.
Of course it depends on what you want in your developer career. I have one profitable side project and 2 more that I hope to make profitable this year. Yes, it took 7 years and they use boring-ish tech (PHP / Symfony and Python / Flask, both using PostgreSQL, and none of them a SPA) but that's ok. I have colleagues who have started 15 side projects in the past 5 years, each using a different stack, but none profitable and none maintained over 6 months.
- ghoshbishakh 7y agoActually Django and Bootstrap are my bread and butter too! I stick to them for anything mildly serious.
- kugelblitz 7y agoCool :-). I use Symfony for bigger projects (because I have a deeper understanding of it by now and the ecosystem is large) and Python / Flask for smaller projects because I feel there's less stuff pre-configured. Maybe someday I will use Django more, once I'm deeper into Python or perhaps I can find a freelance Django project.
- erichurkman 7y agoSame here; even throwaways get built on Django. It's just so quick and easy to test something out. And if you're lucky and it does need to scale… Django can scale just fine for the vast majority of things. It Just Works™ and the Django group is not trying to steer Django into something that it's not. Same with Flask.
- tbrock 7y agoWhy Django over something like rails? If you going to go for batteries included go for a Tesla battery pack and not a set of double a Duracells. I like using flask but django always felt half baked to me vs rails.
- samdixon 7y agoDjango if you are already extremely comfortable with python would be my guess.
- ghoshbishakh 7y agoExactly!
- ghoshbishakh 7y agoI don't know Rails. I know Django. Should I learn Rails in 2020 ? Or something else?
- cguess 7y agoRails is like Django, it's boring because it's predictable, well documented, safe and stable. All of which, for me, is a huge plus. Version 6 was released recently, it's always being updated and it's stunningly easy to use. Yes, it's totally worth learning in 2020.
- nickjj 7y agoI really enjoy Flask too. I remember back when I updated my Build a SAAS App with Flask course[0] for Python 3.7.x when it was originally coded to support Python 2.7.x and 3.4.x, and it took like 15 minutes. Also updating Flask to 1.1 from 0.9.x took around 2 hours but that also involved updating ~20 top level package dependencies at the same time, so most of it had nothing to do with Flask specifically. It was more about updating the whole app (which is a large SAAS app with payments, etc.). I really like knowing that if I don't update my packages for ~3-6 months then the upgrade process will still be super painless. A few weeks ago I also added Webpack into the app (and course) and even that, along with updating to Bootstrap v4 from v3 only took a little over 1 full day's of work, and that was starting from scratch and rewriting all of the CSS to SCSS and JS to ES6 JS. It's just so nice when your web framework gets out of your way and lets you use native tools whenever possible. It makes it SO much easier to follow that tool's documentation and online examples. [0]: https://buildasaasappwithflask.com/ https://buildasaasappwithflask.com/
- elicash 7y agoWhat a condescending response. Yes, this person is a student. No reason to act like this.
- rumanator 7y agoI don't agree the response is condescending. FOMO is a thing, as well as buzzword-driven development and CV-driven development, and it's pervasiveness generates this false sense of urgency regarding learning new frameworks or technologies, and even creates this false notion that this rat race is a basic requirement to have a career as a software developer. If anything, this sort of comment is not repeated enough.
- ksec 7y agoCant upvote this enough. Especially in Web Development, how many Front end framework hype cycle has there been now, 10? But then again I have to admit CV Driven Development is quite important for Careers development.
- azangru 7y ago> No reason to act like this. Not the author of the parent comment; but with bristling replies like this, aren’t you dismissing the experience of those who, through years of experience, have become weary, and disillusioned, and a bit cynical? Isn't it also a valuable perspective (don't go for the new and shiny; stick with the tried and true), delivered in exactly the same way many older craftsmen have historically shared their knowledge with the younger and more enthusiastic ones?
- zinclozenge 7y agoThere are plenty of reasons to learn new languages and frameworks. Dismissing them because of 'new and shiny' is not a good reason.
- azangru 7y agoSure, but this is the objection to the substance of the response, not the way it is delivered (which is what the parent comment is unhappy about).
- ShamelessC 7y agoIt can be incredibly fun to learn new tech for those of us who aren't purely trying to maximize output.
- deleted 7y ago[deleted]
- professor_panic 7y agoI have always enjoyed learning new technologies and often it has nothing to do with work. I just like the process of learning and adding new tools to my software engineering "batman belt".
- Insanity 7y agoI'm in the same boat. And sometimes one of those new "tools" gave me a new way of solving a problem with an old tool. It's just good fun though, but it's not everyone's idea of fun. XD
- qorrect 7y agoIt's a bit strange to me that you use profitability as your metric of success for a _side project_. Most of the shiny tech that has severe breaking changes is Javascript - there are plenty of other technologies to have fun with. The older I get the less I care about the technology choice and the more I care about the content of the project.
- scarface74 7y agoI have plenty of other things to do with my free time that don’t involve computers. If I’m going to spend time on a side project, it’s only going to either be to make money from the project or learn something that someone will pay me for.
- kugelblitz 7y agoIt's one of the metrics, but having kids and thus less time for hobby projects, the more profitable a side project, the more time I can dedicate to it (and reduce my freelance work). And thus I can use it more long-term. With non-breaking tech, I can focus more on features and monetization instead of updates and debugging. I still give some space for experimentation (re: frontend I'm interested in learning more about Mithril.js and Svelte), but I don't go all in and risk long-term profitability.
- gear54rus 7y agoThe irony of this post is saying you don't want to learn new and then saying you used parcel.
- uglycoyote 7y agoThere really is nothing to learn with Parcel, that is the thing. It just works
- gear54rus 7y agoThe problem with such tools is well known: as soon as you get outside the anticipated usage patterns, you're pretty much fokd in the arse.
- kugelblitz 7y agoI didn't say to not learn new tech, but just don't go deep-diving into it because some people think it's cool. Parcel was something small and minimal and got the job done for me. I'm not dismissing all shiny new tech. After it was released, I waited a year until I felt I should use it in a project. I liked it because it was easy to use, fast, covers 99% of my use cases, and in case it got abandoned, it should be easy to replace.
- scarface74 7y agoIt's important to know of the new tech, but I think diving deep into new tech just because it might seem cool now can be frustrating and inefficient long-term. There is no “long term” in technology. The best way on average to stay competitive is by keeping up with what the market wants. Sure it’s possible to start a project that is profitable or that you can get someone to acquire but statistically that’s like buying lottery tickets as a retirement plan.
- Aardwolf 7y ago> There is no “long term” in technology. Yes there is, computer science concepts like algorithms, pointers, ... exist for a very long time. General programming language principles and paradigms are reusable in other languages and libraries. Database principles and languages like SQL exist for a very long time. HTTP exists for a very long time. etc... If you know enough of those long standing principles, you can use "framework of the week" in its week without much big deal, or ignore framework of the week and use/create whatever will solve your problem the most efficiently now.
- eeZah7Ux 7y agoSpot on! Very often throwing frameworks at a problem only makes it worse.
- scarface74 7y agoEven if I agree in theory - and that’s the reason I have avoided front end development - whether using a framework is “better” or not is irrelevant if you need a paycheck. If the market demands knowing AngularReactWASMJs and you’re a front end developer, you have to have it on your resume.
- scarface74 7y agoI’ve been working for 20+ years, dozens of successful interviews and the last time I had anything approaching knowing “algorithms and computer concepts” is over 20 years ago writing low level cross platform C. Most software developers are “dark matter developers” doing “enterprise applications” that will never see the light of day outside of the company or yet another SASS CRUD app. Most of those hiring managers could care less if you know anything about pointers and algorithms.
- onion2k 7y agoYou say breaking compatibility between major versions is a reason to avoid something (eg Laravel), but also say you choose PHP and Python despite those languages doing the same thing. Maybe breaking between majors isn't the reason why you don't like Laravel, it just feels like that's the reason.
- kugelblitz 7y agoBreaking changes are a pain and you have to calculate the risk when using it. Laravel was my first framework (I jumped in at version 4.1) and maybe if was still moving fast at the time. For a while I used Laravel and Symfony side by side, but after a while I jumped ship and decided to focus more on Symfony, because I felt it suited my needs better. Plus the update cycle was more predictable (Laravel changed it to a time-based versioning at version 5, then to semver at version 6, v6.0 was released in September 2019 and 3 months later was already v6.8, it's a bit too unstable for me to use in long-term projects). Doesn't mean I will never use tools with breaking changes, but I will use them cautiosly, fully knowing that I will need to allocate time to updating the system in general. PHP as a language has been VERY backward-compatible in my opinion, though. And Python 3 was released in 2008.
- sp0rk 7y ago> Sorry if offensive or presumptuous, I assume you are max. 30 years old? This line added absolutely no value to your comment (try reading your comment without the opening line and tell me it's any different) and resulted in a lot of distraction from the rest of the conversation. It's curious to me that you decided to include it even though, as indicated by the disclaimer you provide at the beginning, you knew its potential to be considered both offensive and presumptuous.
- ksec 7y agoNot OP, but I think there is a reason for it, although I do agree it might have been better phased. Assuming Good intention, ( Which I think OP is ) sometimes it is a little hard for people under certain age to understand certain things. It is simply a reflect on our stupidity that when we were young, we too were also singing, praising and hyping all the shiny tech. And we were burnt by it. So it was more like a suggestion to those under 30, here is what I did, I was stupid. and if you are under 30, please consider my follow experience as some sort of guidelines.
- kugelblitz 7y agoYes, I might have phrased it better, but the intention was that at a younger age, you perhaps didn't yet have to upgrade a legacy projects with semi-obscure tooling where the original developers have long left; or have had to hack your code in a dirty way because the team leader might have read about e.g. an experimental frontend framework and a DB system that is in alpha status, but still orders the team to use it (to show the company that he/she is using cutting edge tech), so 80% of the time you're just figuring out how to get the system running instead of actually creating value for the project. The first time it happened, I was like "it's fine, we can just rewrite modules A and B". As the years go by, I see it more and more. And now being a freelancer and having been in about about 15 projects, 1/3 greenfield and 2/3 legacy, I see a pattern. Use the most appropriate tool for the task (taking into account not just the tech itself, but also the market, the maturity, possibility to find developers, etc), not the "hot tool of the day".
- 7y ago
- AlchemistCamp 7y agoAFIK, Dave Thomas is over 50 and is still regularly digging into new languages. Ditto for many if not most of the people at Prag Prog and it seems to have worked well for them. This is the classic question of how set your explore vs exploit algorithm. You need a mix of both, but what is that mix?
- jituc 7y agoI second this. I believe in stable and mature codebase/system even if I may have to sacrifice some new tiny hyped techstack or trend. If your product is stable and usable by use, they dont give a damn about its internals. It should good enough for test case. I use vanilla php and posgresql/mysql mostly. They are well matured, stable and have known issues. The website I made for a small college in 2008 is still live and working seamlessly, only changes I detected in last few years on it, were related to styling and formatting content.