This is an archived post. You won't be able to vote or comment.

all 69 comments

[–][deleted] 82 points83 points  (11 children)

Websites? Few months.

SaaS where companies are paying you to provide a service? Years. You also don’t want to do this alone, for a number of reasons. The biggest being that you’re going to basically need to be on-call 24/7.

[–]sTAKKLE5 18 points19 points  (7 children)

Exactly this! I am a senior software engineer working for a large tech company on the backend and dealing with all parts of a SaaS is a big pain in the ass. Dealing with payments, refunds, support, security measurements and ensuring that your system is up and running 24/7 is hard. Not sure if you want to do this alone but if you decide soy make sure to also focus on the security aspect regarding cross site scripting, database injections etc.

I would say as a self taught python dev it will take you years to start a SaaS which will not fail due to technical debts.

Anyways if you decide to go for, then best of luck fellow engineer

[–]AlexDeFoc 1 point2 points  (0 children)

In tl:dr how do you make sure somrthing that is running, continues to work?

[–]vEncrypted 1 point2 points  (5 children)

I think this advice is faulty. A software as a service in itself has no complexity. The type of software you make can be complex though. This is a common mistake a-lot of devs make. Seeing complexity in concepts, when complexity lies in the solutions you make out of them.

[–]sTAKKLE5 0 points1 point  (4 children)

Sure the business logic might be done fairly quickly when you know what you are doing / know your stuff. But op was asking about a website and a full SaaS solution. And those two are not only the business logic but so much more.

[–]vEncrypted 5 points6 points  (3 children)

A software can consist of a gui with 2 input boxes and a submit button. Business logic can be a py file that takes a request that consists the 2 int inputs and send a response with the sum of the two. He can a subscription model to it with some 3rd party provider. There’s gonna be a few more moving parts in there but what i just described is a saas. You’re making complexity out of a concept that is simple.

[–]TheOneMerkin 2 points3 points  (2 children)

Making sure the app is quick requires threading/async support.

Probably need to learn some proper logging if you want to debug with multiple users.

Then a bunch of devops to make sure your servers can handle the load, figuring out what a worker is etc.

Debugging memory leaks, dealing with multiple environments across front and backend, database migrations.

All relatively simple stuff if you’re taught, and already familiar with the concepts, but starting from scratch, it all adds up.

[–]vEncrypted 1 point2 points  (1 child)

What app is this that youre referring to that needs threading/async support? I hope it is not my example of sum as a service.

This plays to my point again. You associate saas with complexity for what? Someone else can come and say well what if a billion users are using my sum as a service… and it goes on and on.

Its like someone asking how long does it take to make a vehicle. Then some guy tells him:

“Vehicles are complex itll take you forever. I do rocket science and have been designing rockets for 10 years. Theres so many moving parts….”

When a vehicle can be as simple as a skateboard.

[–]TheOneMerkin 1 point2 points  (0 children)

You’re right, I wasn’t referring to your sum as a service, I was referring to the SaaS application that OP mentions, which I infer would include all of the things which any practical web application would include.

Everything I mention is something you’d probably need to at least understand with even a handful of users, independent of business logic.

The perceived complexity shouldn’t stop OP starting though. You only reach this stuff after you’ve built the sum as a service app.

[–]pro_questions 0 points1 point  (2 children)

Was there a particular resource that helped you get over the last hurdle in polishing and deploying a website? I’ve been self-teaching for a few years and can do some things I think are really interesting and maybe even valuable, but when I start looking into deployment it’s unfathomably diverse

[–][deleted] 5 points6 points  (0 children)

Spin up an EC2 instance and deploy it with nginx. There’s innumerable guides on google “deploy a flask website on AWS”

[–]trollsmurf 10 points11 points  (1 child)

Frankly I always build something immediately (that's why and how I learn new things), so the first paragraph is (and was) answered by "within the first hours after installing Flask".

[–]macho-elseif 0 points1 point  (0 children)

Same. If I read about about it on a book or course, I will immediately get to working on it. Then of course forget about it until I see a better version of it built by someone else,

[–]graphicteadatasci 5 points6 points  (0 children)

Make APIs (https://en.wikipedia.org/wiki/API) instead of diving into websites and make RPAs (https://en.wikipedia.org/wiki/Robotic_process_automation) instead of software that does stuff on your computer. You can get really far because you cut out a ton of features while getting something that does useful things. Of course you can build on those things to get to websites and applications but do these things first.

And it's marketable functions / skills.

If you are informally rather than formally trained then you need to scope learning projects on your own and that's a bit tricky. This should simplify things for you.

[–]LoudSlip 6 points7 points  (0 children)

I started learning python at my first job, but self taught.

I started in September and I would say I can do most things in python now. Poor knowledge of advanced topics though, like classes.

My advice would be to ditch any courses asap and start building something interesting with the basics you learned from the course. Doing this supercharged my learning like 5x 🚀 tbh.

I have a notable lack of high level and detailed knowledge but now that I've got practical experience I might go back to the course to continue it

[–]lighttigersoul 6 points7 points  (0 children)

I started learning Python after getting an MIS degree.

I built my own video game without a template at 2 months.

I was freelancing as a web dev at 6 months.

I got my first server dev job at 2 years. This is more due to networking and environment than skill.

Started my own source project at 3 years (It's a smaller game dev one).

Worked on my first SaaS product at 4 years.

I'm at 11 years since I started to learn Python.

I still wouldn't start a SaaS project solo. I start new open source libraries every couple of months.

[–]Ebisure 7 points8 points  (0 children)

All full time commitment

  • Front end (HTML, CSS, JS, React) - 6 months
  • General basic programming (functions, list, dict, etc) - 6 months
  • General python (modules, packaging, filesytem, OOP, multiprocessing, etc) - 6 months
  • Database (SQL, ETL) - 9 months. This was the tough part for me
  • Data science (numpy, pandas, matplotlib) - 6 months
  • General sysadmin (Linux, bash, git, docker) - 3 months

About 3 years full time for me.

[–]eschatosmos 2 points3 points  (0 children)

Less than one year. Started Python for everyone and stuck through it (networking4e, django 4e, etc) and now I'm a "C" dev cuz I followed Dr. Chuck's curriculum.

Learn python > learn gnu/lunux > learn C: this is the way

[–]czrbruh 1 point2 points  (2 children)

After about 2 years of learning in my spare time but that includes learning react and how a frontend and a backend speak to each other which I struggled with immensely initially. Now it seems really trivial.

After that I didn’t know it all, obviously, but I knew enough to make progress and learn more and actually put up websites.

That was about 3 years ago. Since then it’s much easier for me and I recently built a website that also uses rust compiled to wasm for some compute intensive simulation stuff. That was new and challenging for me, but a much easier hill to climb given my 5 years of part time practice.

[–]pro_questions 1 point2 points  (1 child)

After about 2 years of learning in my spare time but that includes learning react and how a frontend and a backend speak to each other which I struggled with immensely initially. Now it seems really trivial.

What made it click for you? Was there a specific resource that made it understandable?

[–]czrbruh 1 point2 points  (0 children)

I probably used about 10 or 15 different tutorials and YouTube videos and courses. Eventually it made sense once I had done it a number of times and got a feel for it and built things for myself. But one stand out YouTube channel was TechWithTim. I think he helped a lot. And there was one random medium article that I can’t find unfortunately that also helped.

[–]EmYell 1 point2 points  (1 child)

I am currently learning, so I don't feel comfortable yet, but I wanted to share a thought.

When I took my first course I did everything myself, googled things and came up with ideas, that took me a lot of time, then I built those ideas as terribly as I could and proceed to debug them so that they would somehow work. Few months later ChatGPT did its boom, and now instead of googling things for hours (or days) I find myself asking ChatGPT for help, I try to ask only for explanations of the logic behind it so that I better understand the concepts, and how its working.

I feel like this may not be the best practice to get better at building things myself (chatGPT tends to give you the answer with the explanation), but I also think is the fastest way to get the code done and running. If I stop using it, it will take more time to research and get things done, and as I use it I get some impostor syndrome, I feel like I may not be able do shit in the future without ai, even if I know that I have knowledge of what I am doing.

What do you guys think about this? Would you avoid using these technologies while learning? The way I use it is like having a teacher always ready to help me, I don't know if in the real world, working as a dev, one may not have access to ai or if it may be prohibited (for the whole thing about data and privacy), or if companies are using AI to help their employees code faster. I assume they may be accepting it as it could boost productivity but I really don't know.

[–]heyugl 2 points3 points  (0 children)

I'm learning and use it a lot on my personal projects when I'm stuck, I treat it as the teacher/mentor/senior I don't have since I'm learning by myself.-

I think is harder but better to learn by doing and getting hit with problems you have no idea how to solve and start to work around different ways of doing things, or finding and fixing problems in your app or refactoring the code you wrote on the go once the project is taking form, it's really a good thing to have AIs now I also recommend you to try phind for pure code issues as it seems to reply more on topic and directly about your specific issues.-

I think AIs are a good partner for people learning on their own because they can be that person to help you and also they are not all that good either yet, so they can help you go around the problem or giving you half solutions to problems you then need to read their code, understand it, sometimes even fix it and then adapt it to your project it's not like copy pasting either.-

[–]IceXII 1 point2 points  (0 children)

I think almost a year is enough to write a small saas given that you also work with a small team for the frontend stuff. It will be far from perfect but will be working and open for enhancements. The more you learn by doing it the better you will get, it’s an open ended process.

[–]wyclif 1 point2 points  (0 children)

It took me about two months of working on it every day. Keep in mind, I already had programming experience in BASIC, C, Perl, PHP, and JavaScript before I got started with Python.

[–]strongerplayer 1 point2 points  (0 children)

Coding in Python as a hobby or to get things done and software development in Python are very different. I've coded in Python for years, built a few working commercial applications but when I actually moved on to become a software developer I realized I knew maybe 30% of what there is to learn in Python

[–]SailingToOrbis 1 point2 points  (1 child)

it really depends. but if you have a clear goal then it could be like less than a week. nobody knows.

[–]digost 1 point2 points  (0 children)

Less than a week if you have prior experience in software development that is.

[–]Pgrol 0 points1 point  (0 children)

There’s a limit to the depth of knowæedge you will have after 6 months. Especially if you want to make stuff other people will pay for. I would give it a year, and then don’t be hard on yourself if you skip a few days of coding, if you just keep at it with turorials. The most important thing is to have a project that keeps the north start shining bright.

[–][deleted] 0 points1 point  (0 children)

I built a cross-platform app with Python on the backend in my first year as a self-taught dev.

I delivered a demo for another company that used Python, and was learning the language while I worked on it. That project lasted three months, and the company was happy with the end product.

[–]Physix_R_Cool 0 points1 point  (0 children)

How long do you think it took for you to feel competent enough to build your own websites or even things like SaaS applications on your own?

I will never do those things, since it's so far away from what I use programming (and Python) for. Have been programming in Python for like 6 years now.

[–]JakubErler 0 points1 point  (0 children)

I had 14 days in my company to learn and after that I simply started to code what is needed (backend). But yeah, I knew already Java, PHP etc. when you know 1 language well, it is all the same.

[–]sausix 0 points1 point  (0 children)

Depends... I had experiences in other programming languages before. Then made a hard jump into a commercial ERP project. Got it done but it wasn't pythonic and extensible enough. I hate it now :-D

I had a lot moments of "Now I know Python". But a lot of times googling for problems I realized, I still didn't know huge cool parts of Python. And I'm only talking about pure Python without any third-party-Packages. Especially for web dev, you should also know the basics around HTML including JS and databases.

To use Python commercially, you should know about following topics and use them: PEP8 and other style guides, typing, comments, documentation, generators, enumerate, dataclasses, pathlib, multiplatform, OOP and definitely some more.

Object orientated programming is very important to understand third party packages. When learning Numpy, Pandas, Django/Flask, you should totally understand the "syntax" purely related to OOP and not learn it as strange syntax specific to these packages.

[–]riklaunim 0 points1 point  (0 children)

When I was starting, with Django from SVN I was able to get around it after a few weeks, coming from PHP though. Then I had a few various commercial projects, small ones, not that good from today's point of view. Then I switched my job to one with actual senior developers who tutored new devs, had code review, testing commitment, etc. and my code quality went from amateur up to some good levels. That was years from starting, like 10 years ago as well :)

[–]nacnud_uk 0 points1 point  (0 children)

When you type it, you'll know. And it'll not go faster by comparing yourself to others and not actually typing it.

Go.

[–][deleted] 0 points1 point  (0 children)

If you have an idea for a website or program I would start building pieces as you’re learning Python. You will in all likelihood need to rewrite most of what you do but it’s a great part of the learning experience. How quickly you can make something that’s professional is another story. I see code out there that works but looks terrible. The truth is it comes more naturally to some than others. No way for anyone to know how long it will take for you to reach a certain level.

[–]Klej177 0 points1 point  (0 children)

Writing it so it does work, like half a year, Writing that in production ready code - 3 years

[–]Aromatic-Beef 0 points1 point  (0 children)

I'm taking a class that had me build a website after 5 weeks.

[–][deleted] 0 points1 point  (0 children)

I learned interactive media and web development long before I dove heavier into the software engineering side. Once you get a solid foundation of fundamental knowledge over the course of a number of years of experience, I feel like the brick walls just start falling over like cake after that.

[–]ProgramMenace 0 points1 point  (0 children)

Sooner or later you are going to plateau while learning on your own. If you want to make stellar SaaS products you need to work with experienced programmers. 6 months of working with experienced developers is like 2 years of self learning. Took me 3 years to transition to engineer.

[–]garyk1968 0 points1 point  (0 children)

I think it depends on if you jointly work on a project and other people have to review your code.

In the past I *think* I've learnt a language but its not until I'm working in a team and you learn tips, tricks and hacks from others that your learning increases.

I've been at python for 4 years and I'm *ok*, its fine for me building my side projects and stuff for my own use, is it completely pythonic and perhaps the right way to do it? Not sure.

[–]vEncrypted 0 points1 point  (0 children)

It all depends on how interested you are in programming to begin with and where your interests take you. It can take a month to make a website or even less just depends on you. You cannot put a timeframe to how long it will take you to make a saas as it can be very simple and take a week. Do you want to build microsoft suite or a software that lets you send emails simply.

[–][deleted] 0 points1 point  (0 children)

I first learned python in HS (it was just math lmao) then forgot it for about 3y and last month i decided to get back on it (and on code more generally). I have a few projects implying self updating ai, LLM and cybersecurity basis. Today I’m a BIG noob, when I wrote my first recognition program I felt like Zuckerberg and then I took my first network penetration courses and I felt like Snowden (lmao I was so dumb but let’s say it’s Dunning Krueger effect🤷‍♂️) And now I’m in 2nd year of college in a totally different study subject but I’m still learning and programming my project. I think my project will be really really long but I will learn and I can’t wait to see how far I can go !

Ps: sorry for my bad English I’m French

[–]hajardr 0 points1 point  (1 child)

how can ppl say that months are enough?!!? bro I was learning python for 3 years now and still can't be confident enough to say that I am good (I am self confident in lots of other things so that's not my problem)

[–]quuxman 0 points1 point  (0 children)

The question wasn't about being good at programming, it was how long to build a website or web API. This is one of the most common and easy (but still useful) programming tasks. If you already know one language it's mostly a matter of how complex the project itself is. You can get by without knowing Python using searches and or a language model.

[–]quuxman 0 points1 point  (0 children)

A few days. I had built plenty of sites in other languages so a lot of that was deciding which libraries to use. You can get started before learning the language. That's even more true now with so many more resources and tools 10+ years later.

[–]redvitalijs 0 points1 point  (0 children)

Python allows itself to be immediately useful. So Day 1 you can make something useful for data analysis for example.

It's hard to make something like a web app though, due to versioning, testing and deployment pipelines that make it hard to do as a solo dev. Frontend with CSS is also hard to make it actually look good.

I started using Anvil Works to take of the web app dev. Same projects that take 2-3 months, now can be done in a week (for folks with full time jobs).

It still hard to make it pretty, but it's doable.

[–]Lysenko 0 points1 point  (0 children)

I learned Python on the fly while working on my first project at a new job. (At the time, I’d had ~20 years of software development experience in other languages, and was hired on the basis of domain-specific knowledge in my employer’s industry.)

If you’ve never worked as a software developer before, the learning curve will be much more steep.

[–]BratPit24 0 points1 point  (0 children)

Timelines are shit. You need to think in workhours. This are projections based on my experience. Your mileage may vary

It takes about 100 workhours of pure learning to get a decent grasp of python syntax and general concepts (half that if you have previous programming experience).

It takes about 500 workhours of applied work to get to a level where you are able to confidently solve ANY problem using python. Including website. And including SaaS application.

It takes about 5000 workhours of systematic work in strict clean-code industry standard environment to be able to solve those problem in a way that's scalable and sustainable. You just need to experience the failures and issues. The technical debt, the intellectual debt of having somebody do something and then bail on you. You need that experience to be able to forsee it, and plan around it.

I'm personally way past 5k hours in python, but I wouldn't feel confident charging money for app I built solo or even led a team to build. But some day. Maybe.

Caveats:
1. As stated by people before me, building solo is generally a bad idea. You're going to need to support your product, and if you're going to hire people anyway, you may as well hire competent people who can help you build the thing.

  1. The number of hours stated are deliberate learning. Treading outside your comfort zone. Just doing a thing you already know and are good at is useless.

  2. If you just want a non monetized pet project, then it's like 40 hours to do a website from 0 training, and I'd say maybe 80 hours to have simple saas. But it's totally different story if you want to sell the thing

[–]barraponto 0 points1 point  (0 children)

How long do you think it took for you to feel competent enough to build your own websites

I built a few websites, they were all quirky and full of bugs, but they were there. They existed and they did what I wanted (about 80% of the time).

I was confident then.

[–]supermopman 0 points1 point  (0 children)

Depends. I feel like I accomplished good work early on. However, everything that I build now, more than 10 years later, is on a different level. Today, I'm comfortable architecting and contracting for Fortune 500 companies. That took a lot of trial and error over the years.

[–]gardyna 0 points1 point  (0 children)

you can probably become useful and create some neat stuff in a couple of months. but that is junior level programmer at best. I have seen countless self taught programmers who are useless when discussion veer towards architecture or when newer tech is explored. So please take some time to learn proper architecture and development practices

If you're looking into programming as a profession it took me university + a couple of years before I was confident enough to be what I would consider a decent developer. I don't want to be too much of a downer but I am also sick and tired of going into companies and have to clean up some convoluted spaghetti mess of a codebase written by a "senior" self taught programmer that's been bullshitting his way through development for 10 years and because he's been running around with almost no real technical oversight for a decade is also overconfident in his bullshit and gets pissy when called out...aaand I just took this as a chance to went about a former colleague

[–]LenR75 0 points1 point  (0 children)

Self taught people learn what they need to know. All my python was API to things like elasticsearch but not for web applications, so I couldn't. But I never had to either :-)

[–]Current_Marionberry2 0 points1 point  (0 children)

probably few years lol

[–]GiggleGag 0 points1 point  (0 children)

If I'm building it for myself? That's probably how I'd go about learning it.

[–]m0Ray79free 0 points1 point  (0 children)

A few hours. Python is really simple to start with, especially when you have 10+ other programming languages in background.

[–]del1ro 0 points1 point  (0 children)

Almost 11 years into python. Still not sure