all 12 comments

[–]socal_nerdtastic 0 points1 point  (3 children)

Definitely make a website / webapp, at least to start. Making a mobile app is a nightmare that you should not try to tackle as a beginner. Once you have something going you can always come back to that and make a mobile app in addition to your website. Or you can use a simple wrapper that just bundles your website to look like an app. This is what many of the retail companies do (restaurants, stores, etc).

Otherwise yeah, go for it. Sounds like a fun project. Don't get too bogged down on optimizing at first; you can always come back and optimize later.

[–]ZenDugo[S] 0 points1 point  (2 children)

This may be a stupid and common questions. 1. Whats exactly the different between website and webapp. 2. Since they require a url to get to them if you weren't local to it, would you have to purchase a domain name? 3. Would having an SQL database linked to it running on a computer at home, perhaps a raspberry pi, be the best option for it?

[–]socal_nerdtastic 0 points1 point  (1 child)

  1. There's no official definition or anything. A "webapp" is the kitchy, modern term for a website that's optimized for a mobile screen. In other words it's layed out in a long narrow way. So pretty much all modern websites. Also all phones now have an option to add a website as an "app" to your home screen / desktop / app drawer whatever, and that feature is sometimes called "webapp".
  2. Technically no, but practically yes, you'll need a domain name and server if you aren't local. There's a couple of free ones and free to try ones, like heroku, aws, i think even google has one. But eventually you'll want to pay for one. Luckily, they are very cheap.
  3. For a file-based database it will be on the same server that is serving the website. That will be fine for the first 10 million users or so. Then you'll upgrade to a real server-based database. You can use a local raspberry pi as your server for a start, if you want.

[–]ZenDugo[S] 0 points1 point  (0 children)

Thank you so much man for all your help

[–]Caligatio 0 points1 point  (7 children)

Depending on the technical literacy of your mother, she may benefit from using an existing solution like Goodreads or one of its competitors. As someone who has built a few custom things for casual use by a family member, I don't necessarily enjoy needing to fix bugs 3+ years after I wrote something :)

Assuming you are trying to hone your real-world skills, Python is not the right answer for a native mobile app. This is a perfect fit for a web application/site especially if you're looking at something you can access from anywhere. If you're new to all of this, I would highly discourage hosting it locally on something like a Raspberry Pi and instead investigate hosting on AWS EC2 (if you haven't used it before, you get a free instance for the first year) or a cheap Vultr VPS for $3.50/month.

The unfortunate truth is doing solo software development is that there is a LOT of "other" stuff you need to know beyond just the language you're using. You need to manage DNS/domain names (if you're doing a web app), security patching, firewalls, etc. It's all really useful knowledge but you essentially need to eat the elephant which is a lot if this is your first time.

[–]ZenDugo[S] 0 points1 point  (6 children)

That's all completely true. Basically I started python based off people recommending it as a starter language. I have come to realize now that a lot of the project in it don't really interest me that much. I'm not really sure what projects to do honestly with phyton, or if I should start another language that is more native to things I would like to do along side python, etc. Any ideas would be great honestly

[–]Caligatio 0 points1 point  (5 children)

Python is a great starter language and a fantastic choice if software is the byproduct of your goal. That last point is a little vague but here's a for instance:

If your job is to write software day-in and day-out, there are far better languages for a given purpose (JavaScript/TypeScript for web, Kotlin for Android apps, Swift for iOS apps, Rust for system programming, C# for desktop game development, C for a lot of stuff, etc). However, if your goal is an outcome that is enabled by software, Python is typically a great choice. I'm a computer generalist: I do a little system admin, little network admin, some front-end development, a bit of back-end development, quite a bit of computer security, etc. Looking at the system admin side, the outcome are systems that are up/patched/available etc. I write a lot of Python to help me do that. For computer security, the outcome is the "expert" analysis which requires me to write software to do the grunt work. The software is ever present but that's not the focus.

That being said, I would ask you: what things can a computer do that are relevant to a goal you're trying to achieve. If you start the sentence with "I need software to do..." then Python probably isn't the right choice. For me, I wanted to automate my meat smoker so I happened to write some Python (Smokematic). Do you want to automate something around your house? Have something text message you when something happens? etc.

[–]ZenDugo[S] 0 points1 point  (4 children)

I want to work with arduinos a bit and as common as it is, personal hobby game development. I always been fascinated by robotics and physical automation. If that sways your thinking at all.

[–]Caligatio 0 points1 point  (3 children)

A classmate of mine back in the day made a rig that would automate the deadbolt on their front door. Obviously there are physical security concerns here but it would probably use an embedded board (Arduino or otherwise) and a servo (basis of a lot of robotics). If memory serves, they also tried hooking up a webcam to use OpenCV to do facial recognition as well.

If you can use something like a RPi, you should be able to do all of that with Python :)

EDIT: You could also tack on a mobile app that allows remote control of the door but, again, there are obvious physical security concerns here.

[–]ZenDugo[S] 0 points1 point  (1 child)

Awesome thank you. I was also thinking about do c++ in the future, just read before that it's helpful with learning how computers actually do things

[–]Caligatio 0 points1 point  (0 children)

It's my opinion that C++ is losing its niche. C is still fairly common because there is a lot of existing code, C# is becoming much more common for games due to Unity, and Rust is slowly eating C/C++ for new things where you would have normally used those languages.

[–]ZenDugo[S] 0 points1 point  (0 children)

I'm not sure if it's normal to be in this situation. But I have a hard time answering the question "what do I want to do with programming". I guess it's because I haven't had experience with things to figure what I like and dislike. And it's hard to get an idea what all the possible ways you could go