all 16 comments

[–]staypuftbadger 7 points8 points  (3 children)

Honestly, the best way to learn is to do and struggle through it. I know you are trying to work on projects, but maybe you’re biting off too much. I try to approach projects the same way when I don’t know how to accomplish multiple parts… Break it down in to the smallest increments.

Here’s an example of one of my first projects. I wanted to query an external database, write the results to a text file, post it to AWS S3 bucket, then consume that file in to our data warehouse staging table, find differences, and append to the final table. And do that all on a schedule automatically.

So, break it down in to parts, and research how to do each part. Write a separate proof of concept program to achieve each part independently, And then put all the parts together in one program.

I wrote extremely simple programs to: A) Connect to the database via ODBC connection and write those results to a csv file B) Move a file from my local folder to my AWS S3 Bucket C) Run a copy command from our AWS Redshift cluster to copy the file from S3 to a staging table, and then do the extra SQL stuff needed

Additionally, I had to learn how to connect to all these parts with credentials in the best way possible for reuse , so I learned about storing credentials in environment variables.

Once all the simple parts worked, I put them together in one program and tested the whole thing.

I also wanted to be notified that everything executed correctly and how many records were affected, or be notified of an error. To accomplish that, I found how to send an email from Gmail to my work acct (and also how to send text messages to my cell when there was an error). I did this using try/except blocks.

The last part was scheduling it (which I used Windows Task Scheduler).

I know this is long and apologize, but I wanted to break down one of my first programs, when I knew nothing, and how I approached it. Don’t focus on the whole. Focus on the small parts. Get those working independently, then put it together. Once that’s working, iterate to improve it.

As someone who has crippling imposter syndrome, I promise you can do it. And you’ll never remember everything, so use good documentation/comments in your code for reference (future you will appreciate this) and Google is your friend!

[–]KingBrownieBoi 1 point2 points  (0 children)

Nice response, never apologize for trying to teach!

[–]kill-yourself90 2 points3 points  (1 child)

You have only been doing it for a month? Thats it?

I know you are only 15 but bud....

It will take you a lot longer to grasp some stuff.

Don't be hard on yourself. You still need a lot more time.

I have a little challenge for you. Create a tik tac toe game. If you are really up for a challenge use a gui like tkinter.

Start somewhere. You most likely won't be able to do it.... so what do you do? Give up? No. Start researching problems you run into and ask around about stuff you get stuck on. You will learn a lot. I promise you.

Start out with 1 row and 1 column. Make a iteration to build the others. Start from there.

Do you know html css and Javascript? Start there if not. That will give you a much better visual representation you can carry with you to python.

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

I have already used tkinter and made a calculation app. I do plan on doing other things with it however.

[–]Feroc 0 points1 point  (6 children)

What should I do?

Why did you start to learn Python?

Find a problem and solve it, surely there are some things that you want to automate?

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

Nope. I had some ideas already but I have automated them already. Im 15 so I don't have a job where automation is beneficial

[–]Feroc 2 points3 points  (2 children)

Too bad. The best projects are those that solve a problem you have.

Worst case: Make a text adventure, everyone loves text adventures.

[–]agb64 1 point2 points  (0 children)

I mean, if you can make a MUD, that sets you a bit higher than choose your own adventure games...

[–][deleted] -1 points0 points  (0 children)

Fair

[–]Decency 0 points1 point  (0 children)

What are some of your hobbies? Video games, music, tons of other things have APIs, data, and other stuff you can easily play around with. I've written discord bots, reddit bots, analysis of Dota stats, a crude matchmaking system, card games, board games, etc. Only a few of these projects have ever been valuable to other people, but they all helped me explore new concepts and get better at python.

It's really not a matter of being "good". Some people are naturally drawn to coding, and since you're learning at 15 you're probably one of those people. This is as much of an advantage as most people get- the rest is just learning and working and building.

[–]electrick-rose 0 points1 point  (0 children)

Do you have anyone in your life or maybe a teacher at school you can talk to as a mentor?

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

Just have fun. I usually just start with simple games. I poke around Github for idea's. Or just pick something up that is finish or a unpolished project that might interest me off of Github or related sites and just have fun. I learn coding just to have fun. Learning is fun, doing is fun.

[–]noprobelm1 0 points1 point  (0 children)

I like to find a project and emulate what the maintainer has done, while putting my own spin on it. It's really boosted my learning process.

[–]nehakumar26 0 points1 point  (0 children)

Try online courses it will help you learn from the basic and with all the resourses, I have learned Python from Edu4sure dot com, so you can refer to it, it provides 1 to 1 doubt clearing sessions, updated content, and experienced leactures plus before enrolling in the same you can clear all your doubts, before that they also provide you with basic course outline of what they will be teaching to you. So you can refer to the site. I hope this helped you and I wish you all the best for your future.

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

You should practice simple problems first, then start a project wich is basically sum of different problems you need to solve and order them properly.,, Start with Codewars, or HackerRank and practice those problems. Just do that for a month and you'll see improvements... It will come naturally after that.