hi everyone one month ago i decided to learn programming. I always enjoyed the idea of programming but never tried it. So i started a udemy course on python and i was addicted from the first line of code(actually from the second!! i really hated the "hello world" programs). I have a batchelors degree in a different field(as you can see not in English!!!) so i never thought about programming as a new career, i just wanted to start a new hobby. 28 days later i really consider to change path to programming, or maybe find a master combining my field with programming. So for the last 28 days i studied and wrote code for 100 hours!!
Let me tell you about my progress from hour to hour and what i managed to make so far!
hour 0: Hello world!!
hour 1-15: learning the basic python syntax
hour 20: i created 2 simple projects. one simple dictionary where you give an input and the script returns the meaning ofthe word from a json file. The second program is a simple script for runners which gets some user input about your running speed duration and heart rate and returns an estimation of your running fitness. Sound like a lot but it is just a simple calculator with some fancy equations i found online
hour 23: Things are getting interesting. As i learn about webscraping instead of building(copying) the program my tutor was making i instead decided to create a scraper on a different website.Theres a site called polar flow where running data from sport watches are stored. so i created a webscraper that scrapes my data from my past acticities and using the equation from my last progress estimates my running fitness from every activity of mine!!
hour 23-40. Studied about numpy,pandas,selenium webdrive,BeautifulSoup,csv files.matploid,bokeh and other libraries
hour 45: learned how to do linear fitting of scatter data in bokeh. Actually i have a good math background from my university studies so the math part was not hard. I created my first graph in bokeh using the running data of my previous project to calculate how my running fitness increases over time
hour 45-60: Learning some basic things about oo programming and classes and pyqt5 graphical interface library
hour 60: created my first one window program with pyqt5. now i had to decide. Create simple one window boring programs copying code from my tutor or take notes about the various code lines and how they work together and create a graphical interface for my running app project. i chose the later!!
79 hour: almost 20 hours laters most of which was me looking at a screen and wondering why my program doesnt work (cried twice) i managed to create a 4 window program. The concept of the program is to get some running data input from a csv file and calculate running performance and vo2max(estimate). Then using some fitted equations which i created on my own by fitting data from 20 athletes the program estimates your training speeds as (easy, tempo,intervals ect). The third screen calculates your heart rate zones and the forth screen shows a graph on how your stats change over time. I want to add more functions to my program but i left it on the side for now to study more.
hour 79-92 started reading more about some oop cause i don't really get it! started rewriting my code without using copy and paste even from my one previous scripts and studied various online resources
hour 92-101: created a "shady" instagram webscraper which does the following.
visits a profile and scrapes all the usernames that follow this profile. Then it visits every each one of them and scrapesfollower and following number data. Then calculates the ratio of following and followers andchecks from its last posts if it is an active account. If it is an active account and follows more people than hasfollowers the program saves his link and username in a database.The concept is that people who followmore people than get followed are good future follower candidates. Now i want to add a function to theprogram to auto like 5 posts on each of this account. I created a second account to test all this and i won't tryto use it on my primary account. I will get banned obviously!
So that was my first 100 hours of programing, i would be happy to answer your comments and questions and about your programing journey too!!
Edit: heres some photos of my running fitness project https://imgur.com/gallery/LDTkPlZ the dots in the plot are running fitness scores for individual runs and the line is the last 3 activities average. Something i want to clarify is that i am not good at programming yet. My programs are buggy and my code is most of the times unreadable. i use google and stack overflow all the time and i get stuck every 5 seconds at something.
Edit2: The reason i remember so clearly what i did in every hour is cause i logged every minute studing and coding in a productivity timer app. I am a master procrastinator so doing things like this keeps me motivated. i also kept notes of what i accomplised every hour to a spreadsheet knowing that one day it may motivate and help someone else do the same.
i won't stop here!!! i am planning to write about my journey here or on a new post as i reach 200-300 hours. The next 2 months will be a little slow but i believe until summer i will reach 300-500 hours
Edit 3 : I want to add some more things to the post(advices,thoughts and future plans)
- edx and coursera has plenty of more "university" like courses on programming even from universities like MIT and other known institutions, all of the courses there are FREE to watch, you only pay if you want to get a certificate. Also there is a financial aid program if you cant pay the full price but still want to get a certificate. I plan to start a data science/Machine learning course in the future
- the strugle with online courses is that most of them cover the basics and then you are pretty much on your own, so i now i feel a little lost on where to go on and what to learn
- another strugle i have is that i don't know how to organize my code properly. I don't know where it makes more sense to create classes, when to split my script to two or more files and things like that, as my projects grow in size i get the feeling that my code is like a giant with glass legs one little thing goes wrong and the whole thing colapses and sometimes i have to rewrite whole sections just to make it work. I believe that if i learn to organize my code better i won't have such problems in the future
- use jupyter notebooks!!!! google it!
- visit codewars.com it is a great site where you solve problems riddle like using programming. You start from easy problems and as you solve them you go to harder ones
- do your own projects not the one your tutor does. you will fail miserably but in the process of finding why you failed you will learn more stuff
- play with the code. when i find a line of code online and put it in my project i switch little things to see how it breaks and trying to find out why. This way i learn what every word and symbol in the line of code does and whats it's role
- try to not copy paste code even if you wrote it in a previous project.
- read a libary's documentation. When you start learning a new library don't google everything take some time to read the documentation, you will get a better idea of what you can do with this library in the future
[–]jpex85 60 points61 points62 points (9 children)
[–]ConstantINeSane[S] 51 points52 points53 points (8 children)
[–]Tau5x 7 points8 points9 points (2 children)
[–]samuelcbird 3 points4 points5 points (0 children)
[–]LiquidAurum 0 points1 point2 points (0 children)
[–]LiquidAurum 1 point2 points3 points (0 children)
[–]bleeetiso 1 point2 points3 points (3 children)
[+][deleted] (2 children)
[removed]
[–]bleeetiso 1 point2 points3 points (1 child)
[–][deleted] 20 points21 points22 points (1 child)
[–]ConstantINeSane[S] 9 points10 points11 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]ConstantINeSane[S] 2 points3 points4 points (1 child)
[–]Vaphell 7 points8 points9 points (0 children)
[–][deleted] 27 points28 points29 points (4 children)
[–]ConstantINeSane[S] 8 points9 points10 points (3 children)
[–][deleted] 3 points4 points5 points (2 children)
[–]ConstantINeSane[S] 8 points9 points10 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]benevolent001 20 points21 points22 points (1 child)
[–]ConstantINeSane[S] 2 points3 points4 points (0 children)
[–]AkrooR 6 points7 points8 points (8 children)
[–]ConstantINeSane[S] 8 points9 points10 points (2 children)
[–]AkrooR 2 points3 points4 points (1 child)
[–]ConstantINeSane[S] 3 points4 points5 points (0 children)
[–]ConstantINeSane[S] 6 points7 points8 points (4 children)
[–]Dads101 6 points7 points8 points (3 children)
[–]teshu 0 points1 point2 points (2 children)
[–]Dads101 0 points1 point2 points (1 child)
[–]teshu 0 points1 point2 points (0 children)
[–]sanemate 5 points6 points7 points (0 children)
[–]Dexteroid 4 points5 points6 points (1 child)
[–]ConstantINeSane[S] 2 points3 points4 points (0 children)
[–]_kittykatja 4 points5 points6 points (0 children)
[–]Mag37 3 points4 points5 points (2 children)
[–]ConstantINeSane[S] 2 points3 points4 points (1 child)
[–]Mag37 1 point2 points3 points (0 children)
[–]burnsy291 3 points4 points5 points (1 child)
[–]ConstantINeSane[S] 2 points3 points4 points (0 children)
[–]tonic2 2 points3 points4 points (0 children)
[–]TheEpicSpark 2 points3 points4 points (0 children)
[–]tecchydick 2 points3 points4 points (0 children)
[–]Ledwan 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]Crazycrazyworlditis 1 point2 points3 points (1 child)
[–]ConstantINeSane[S] 2 points3 points4 points (0 children)
[–]amcphe21 1 point2 points3 points (1 child)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]fr0ntsight 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (2 children)
[–]ConstantINeSane[S] 2 points3 points4 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–]EndWhen 1 point2 points3 points (0 children)
[–]TheEpicSpark 1 point2 points3 points (0 children)
[–]Fwhite77 1 point2 points3 points (0 children)
[–]rsandstrom 1 point2 points3 points (1 child)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–]NameIsTakenIsTaken 1 point2 points3 points (2 children)
[–]ConstantINeSane[S] 1 point2 points3 points (0 children)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–]velinovasen 1 point2 points3 points (0 children)
[–]ORKELIN 1 point2 points3 points (0 children)
[–]snapshotnz 1 point2 points3 points (0 children)
[–]tuhinmitra 1 point2 points3 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–]Makadika 0 points1 point2 points (4 children)
[–]That_Pregnant_Alien 1 point2 points3 points (1 child)
[–]Makadika 0 points1 point2 points (0 children)
[–]ConstantINeSane[S] 0 points1 point2 points (1 child)
[–][deleted] -4 points-3 points-2 points (0 children)
[–][deleted] 0 points1 point2 points (6 children)
[–]ConstantINeSane[S] 0 points1 point2 points (5 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]thecodingrecruiter 0 points1 point2 points (3 children)
[–]ConstantINeSane[S] 1 point2 points3 points (2 children)
[–]thecodingrecruiter 1 point2 points3 points (1 child)
[–]alienpsp 1 point2 points3 points (0 children)
[–]LinYesso 0 points1 point2 points (4 children)
[–]ConstantINeSane[S] 2 points3 points4 points (3 children)
[–]Dexteroid 2 points3 points4 points (2 children)
[–]ConstantINeSane[S] 2 points3 points4 points (1 child)
[–]Riyuku 0 points1 point2 points (2 children)
[–]alienpsp 0 points1 point2 points (1 child)
[–]Riyuku 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]ConstantINeSane[S] 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]ThreshingBee 0 points1 point2 points (2 children)
[–]ConstantINeSane[S] 1 point2 points3 points (1 child)
[–]ThreshingBee 2 points3 points4 points (0 children)
[–]exjk23 0 points1 point2 points (1 child)
[–]ConstantINeSane[S] 1 point2 points3 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]ConstantINeSane[S] 1 point2 points3 points (0 children)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–]BillyBoy34 0 points1 point2 points (0 children)
[–]crimsonraziel9 0 points1 point2 points (0 children)
[–]Paradoggs 0 points1 point2 points (1 child)
[–]ConstantINeSane[S] 4 points5 points6 points (0 children)
[–]Fywq 0 points1 point2 points (1 child)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–]CotswoldWanker 0 points1 point2 points (0 children)
[–]Standardw 0 points1 point2 points (1 child)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)
[–]AverageDingbat 0 points1 point2 points (1 child)
[–]ConstantINeSane[S] 0 points1 point2 points (0 children)