I'm 18 years old, doing full-stack web dev for ~2 years (Django, node.js, whatever.js, no wordpress stuff) and charge ~35-40 euro/hour while studying computer science.
I get most of my projects through word-of-mouth and I'm currently trying to create products that allow me to build a small company - I'm partnering up with some software developers, entrepreneurs and a project manager.
It's not uncommon that web agencies in Germany only charge 70 euro/hour, so I would like to hear what's necessary to charge something like 100-150 euro/hour - seems like those rates are only possible in the US or doing specialized things like SAP consulting. It's difficult to compare those US numbers because the german system seems to be very different wrt salaries - 60-70k is considered good even for experienced developers, while it seems that those numbers are absolutely sub-par for US developers.
Would love to hear some tips on how to acquire new clients (especially in non-tech industries) and how to find interesting business problems to solve.
My strategy would be to reach out to local companies, analyze their businesses and build solutions that save them time and money (very similar to business consulting except doing software engineering) and getting inspiration for SaaS businesses. Would like to hear your opinion about this way.
I'm currently using Vue.js to do some projects and can explain you everything you need to get started - it's a great framework and doesn't hide too much Javascript and emphasizes POJO (Plain old Javascript objects). I'm convinced that no one here can help you without investing more time than searching for their favourite links.
If you don't mind, leave an email address in the comments.
Read about MVVM (Model-View-ViewModel), because this is the design pattern used by Vue.js, I assume you already know about MVC if you did backend programming.
If you're unsure about MVC in the frontend try to build something simple with jQuery using Models, Views and Controllers. I did this in the past and it's helpful to understand the problems of SPAs that we're trying to solve.
I don't want to repeat everyone's comment, but you should be aware that the abstract concepts and fundamentals are more important than the frameworks you are using, I guess you already know that.
I can't guarantee you that I have enough time to explain everything thoroughly, but I can assure you that I can give some helpful directions.
This reminds me of a new Blackmirror episode called "Playtest" where an AI tries to find a way to scare a game tester. I think this could help to dynamically create the required assets and support game developers, although I'm not sure if I want to live in a world where this has any priority whatsoever.
I agree to your sentiment that needless complexity is bad, technical debt is a real thing and it is plain reckless to use something for the sake of it.
But the term "complexity" gets used in two different meanings in your comment:
a) complexity of usage: You make the point that Django is easy to use, but it isn't simple software; it contains an ORM and is huge.
b) complexity of the system: Django is a complex system. If you are not using any of its benefits, it has needless complexity and you may be better off with a simple PHP script.
And this brings me to the conclusion that it's all about your use case. If you don't build a big SPA, you can get away with vanilla JS without using a transpiler or even a build pipeline.
The reason it's simple to develop something with a full-fledged framework like Django is that they have build a complex system to abstract all those complexities you don't have to think about anymore.
And I don't get your argument in regards to express.js because this is entirely a software architecture decision and they decided that a modular approach suits them well - maybe it's actually less complex for them to develop the software that way because they isolated the body-parser and other components. It's like comparing monolithic with micro kernels - it's all about trade-offs and the added complexity from a developers' point of view may be worth it for the specific use case. There is no general definition of "needless complexity", because the need is very subjective and different for each project.
A psychologist told me that she analyzed men who have prostate cancer.
Long story short, she found out that men who simply go to the doctor every 4-5 months to make sure that everything's fine are happier than those who did an intervention. The reason lies in the fact that you lose self-confidence when you're impotent and incontinent.
Sounds plausible to me and the results had high statistical significance, therefore I agree to your skepticism.
I've used Ember.js in the past and must admit that it got in the way and the whole team was magnitudes slower than it should be, although I would also see the bad codebase we had to build upon was a big factor of this, so I can relate to that.
But I've never experienced this problem on projects where I'm able to choose my tools. I use Django and Vue.js with webpack and I can estimate the time constraints for each feature accurately using that stack which is most important for me.
Maybe you've used too opinionated frameworks in the past. If that is the case, loosely coupled frameworks like ampersand.js or very flexible solutions like Vue.js will be a pleasure for you.
In regards to the Pareto Principle: The 80/20 rule means that you need 80% of your time to finish those 20% outside the scope of your framework, not 20%, so your observation fits with this.
Thanks for the link, his story is great! I'm convinced that compilers and formal languages are the core fundamentals of computer science, amazing that he got into it so young.
It's easy to show how complex those systems are. It's easy because they are complex. And that's pretty normal. Let someone talk about Java Enterprise development, the symptoms of your body and their diagnoses or just try to explain how to build a pencil (https://en.wikisource.org/wiki/I,_Pencil).
We're professionals, after all, and TypeScript and React were not build by some teenage hackers.
I think the problem is that everybody remembers how they build that one website using jQuery in the early 2000s and now wonders why everything's so complex now. The reason is that we started to build complex applications instead of enhancing grandma's blog using jQuery.animate, get over it.
And if a software developer talks about all of this tools in the same manner you've described, he has poor social skills, nothing related to the tooling.
He could also talk about the intricacies of scaling web services using k8s and OpenStack and you'll find another bunch of tools and concepts. If someone would actually talk like you've described it, he would play buzzword bingo in any domain of expertise like medicine students who want to sound smart using latin words.
I second the part about ego. I once wanted to write a BaaS because I was not happy with parse-server. After considering the time efforts and comparing it with the efforts to improve parse-server I decided to just improve that software and don't care about my own project, because I try to value my time higher than my ego. It isn't easy to be rational if your ego is involved.
But it's also difficult to decide if it's worth it, especially if you've found a real deficiency. The creator of http://propelorm.org said to me that his framework gets him €120k+ offers and that he recommends building open source projects that are in demand.
So I don't think it's possible to give a definite answer what developers should really do. Maybe bit of both?
I don't think that it's fair to blame the frameworks. You should see it the other way 'round: They save you 80% of your time. The 80/20 rule is real (https://en.wikipedia.org/wiki/Pareto_principle), 20% of the whole work needs 80% of your time.
If you have problems explaining why features need their time, it's not about your frameworks, it's about explaining the clients in all honesty what happens. Or, if you want to get paid enough, you simply factor in some risks into your budget planning and up your budget. They don't have to know that you only needed 2h to get nearly everything up and running and 6h for that one sneaky feature. Use asymmetric information (https://en.wikipedia.org/wiki/Principal%E2%80%93agent_proble...) to your advantage. It's not about the toolset, it's about your mindset.
I thought like those junior devs for a while, too, and I agree to your sentiment.
The feeling that the CEO I was working with was doing mundane tasks was astonishingly - he even said that he could to his whole job using his smartphone.
But after trying to do the business stuff myself I realized that no one in all of this process is irreplaceable - finding a good software developer may not be easy, but it's also not easy to find a good CEO. This is important to realize that software developers shouldn't see themselves as some type of elite.
The main problem is that junior devs don't realize that 90% of business is based on networking and being friends with people who are in middle management and want to increase their reputation in their big corp. You don't get big clients because you're a genius hacker, most of the time those B2B applications are simple CRUD apps. You won't get that $500k because you simply didn't play golf with the key partners. I'm not even exaggerating, I've seen that the best deals are made in ones "spare time".
Maybe startups are another breed than the software companies I know, but don't drink the cool aid and don't assume that technology is your main differentiator. It's working with people all along.
I think it isn't even about scaling high-performance systems, it even starts with the mindset of those who think that software developers are entitled in some way, usually junior devs and people who never did any real business work.
I talked to a police officer in Germany and he told me that police abuse happens even if they wear cameras. He said that those who wear cameras simply don't record their colleagues who are hitting people i.e. looking to another direction deliberately.
And I'm sure that if you start to punish them based on those body cameras, you'll see that the police officers will give you biased footage.
Although I can imagine that police officers start to change their behaviour because they're watched (there are studies showing positive changes in behaviour due to surveillance), there must also be more education for the police officers in regards to baseline probabilities so that they realize that black and white people aren't different in behaviour, this could help them to realize that their intuition is not profound. I think helping them to understand cognitive biases is a good way to start a shift.
All of this requires that they aren't doing abuses deliberately, though.
"meet rent next month"? You're not going to find clients that fast and even if, they usually take their two weeks to pay your invoice.
I know some people who get 350$ setting up wordpress pages in the morning, but this usually works exclusively using connections.
Sure, ask some local companies, but freelancing isn't like tetris in sprint mode, it's more like playing chess and building relationships. I think you should also consider temporary part-time jobs doing catering. Registering on Upwork or Fiverr has a lower ROI than doing those simple tasks.
The best way to solve this is to find a business partner who is also a good friend of you. The best freelance teams I know contain extroverts who connect with the clients (and sometimes develop) and god-like developers who do the heavy lifting. You shouldn't underestimate the effort to get a client and do proper project management and budgeting, it's easier with a good friend who knows his business stuff.
Ok, I know how you feel.
You are 26yo and you are definitely a good programmer.
The problem: You're not 10yo anymore, so no one will congratulate you for building your bots and games.
You realized that. You are intelligent like many others in this industry.
You've understood that you had potential and now you've got the feeling that you wasted it.
Otherwise I can't explain that all your writing is directed towards your past.
I get that you feel sorry for yourself, but this won't help you, it'll lead to a miserable life.
The solution is simple:
Start to live your own life. Pack your stuff and go.
And when I say it, I mean it.
Stop building these bots if you don't earn money with them.
You can start later again if you have companies that want to pay your for this.
Start asking for advice for your landing pages, your own website, Hivee and talkbot look like they have interesting content, but it's very inaccessible (e.g. Talkbot: would be a great chance to show the features instead of opening the mail client).
If you have experience doing web development, native app development, AR, NLP, ML and even Hardware/IoT, you are absolutely able to get a job that is paying you a rent and a lot more.
Maybe your home city is not right to get a job there, maybe not even your home country.
But you really don't want to waste your life feeling sorry for yourself.
So go out and seek opportunities. Use Github and show your projects. Talk to business owners, ask them if you can work for them and search for opportunities to implement software that help them and charge them for your support. Learn to do invoices, seek a mentor who can help you with your tax filing. -- you're not going to build your own life if you're not even able to learn how to get money.
Stop calling yourself a founder: say that you have some projects, but don't sound like a douche bag - having a business means getting revenue. Show people your projects and they will understand that your work can help them. Whining about missing support from people who don't know code is only the absence of creative ideas and valuable projects that even laymen can understand. Work a week for your father and you'll see how inefficient his processes are: improve them, you have the skills. -- When I was 12yo, I was crying once because nobody in my family understood my coding hobby. After I wrote some helpful tools and earned some money, they've realized that this computer stuff is good for me and supported me.
Regarding job interviews: The best way to get hired is to build trust and relationships. You don't have to do whiteboard interviews if you know the right people. I'm not suggesting that this works for Facebook or Google, but there are more than those 5 companies you've listed.
And if nothing works, make a nice CV, write some blog posts and case studies of your projects, create accounts at upwork, craigslist and similar pages and connect with other people through the internet.
So, back to your question: "How do you keep motivated if nobody supports you?"
You start to give a f#?k about other opinions and simply hustle, we're not entitled to anything. Stop blaming other circumstances and gain control of your life. You may want to be the highly gifted man who talks about his businesses while living at home or you start to do the real thing - your choice.
It's not uncommon that web agencies in Germany only charge 70 euro/hour, so I would like to hear what's necessary to charge something like 100-150 euro/hour - seems like those rates are only possible in the US or doing specialized things like SAP consulting. It's difficult to compare those US numbers because the german system seems to be very different wrt salaries - 60-70k is considered good even for experienced developers, while it seems that those numbers are absolutely sub-par for US developers.
Would love to hear some tips on how to acquire new clients (especially in non-tech industries) and how to find interesting business problems to solve.
My strategy would be to reach out to local companies, analyze their businesses and build solutions that save them time and money (very similar to business consulting except doing software engineering) and getting inspiration for SaaS businesses. Would like to hear your opinion about this way.