HOW I LEARNED PYTHON
Published: 2020-04-09 13:16:41

WHY PYTHON??


I learned PYTHON so I could prepare for the attack of 'SKYNET' and the 'Terminators'! (LOL JK).
Sounds like awesome stuff so I decided I had to step away from my Web Developer Tools Panel for a second to wonder around and find out about this "AI"???

I learned a bit about AI, Data science, Machine learning, Natural language processing, Deep learning, Robotics and Automation. Turns out, like everything else, ALL of these topics are related. ALL of these fields use Python as one of their main programming languages.

From Web Development to high level Robot automation, python apparently does it all. AMAZING!

The first programming language I really learned was C. C is a Great language(if not the greatest) and gave birth to C++. Both C and C++ can be used to create python modules that leverage pythons dynamic power. "CYTHON", as I understand, is the API that helps developers get the best of both worlds. Wow python!



Speaking of Developers, programming in python is FAST!!! Apparently in python "EVERYTHING IS AN OBJECT"...
I like that concept because it took me a loooog time to understand it in JAVASCRIPT but now that I do, it makes sense why PY (not "pi". lol) is so fast. I've only done 1 OOP project in python and it wasnt weird. Cool!

I do love the Platform Portability of the language. Its available on Windows, Mac and comes pre-installed on Linux. It is right up with JAVA, C# and JAVASCRIPT.

"WRITE ONCE, RUN EVERYWHERE!!!"

Python is used for many programming purposes and GUI development is one of them. We all know that most "normal" people wet their pants when they see a "terminal" or "console". Thats why we have GUI's. Python helps developers to make software easier to use for "normal" people by having a GUI library called "TKINTER" bundled with the python install. There are a number of other libraries like PyQT (popular and has more features) and KIVY(for Android development) available.

APPLICATIONS CREATED
CALCULATOR

This was the first Real GUI app I made with python and Tkinter. I had made a much simpler version from a previous tutorial. While making this I also learned about "Lambda functions" which are similar if not the same as immediately invoked annoymous functions in JS. Quick and dirty indeed.

PAYROLL

The first big app I made in TK and it was quite apparent. I had a hard time refactoring this app but learned a lot along the way. Its still has bugs I probably wont fix but I like the design.

HOTEL MANAGEMENT SYSTEM

The first app I used OOP in. This was the first time I used colors and "Combo-boxes"(limits input choices to the ones supplied). Its also the first time I got the "receipt" section right. I learned later that that is the hardest part to get right when working with TK(at least for me) because the syntax of the TK "box-model" is different to the CSS version I'm used to.

FAST FOOD SYSTEM

I enjoyed making this because it looked quite intimidating at the beginning. It had many bugs. solved 99.9% of them. It was heavy on checkboxes and entryboxes which are two very important widgets. Overall, a easy to understand design that can be modified with a bit of effort.

CAFE MANAGEMENT SYSTEM

In this app I really focused on the "Receipt" section. as I mentioned this tends to be a bit of a problem because of the somewhat weird box model in TK. Thankfully after much swearing, crying and refactoring the receipt finally looked decent! I worked more with the colors that are available and made the entry box change color when ready for input. It was fun making this. lol.



HARD PARTS


As with everything else(and especially in programming), there are hard(bad) parts. I am glad to say though that python is not a language with a lot of funny syntax or compiler "qUiRkS"! The "white space" errors were kinda funny in the beginning.
Python does have 4 main things I did not like. None were horrible but I do believe improving these would make python an even better language.

Firstly I must Praise the python team for always listening to the community and adding awesome new features. This is by far the most full featured language I have EVER used.

Unfortunately though, it does lead to broken code bases. If you update very often(year or so in this case) the code from 3 or 4 years ago could be in trouble with every new version released. I saw this in some of the tutorials I was following and even on StackOverflow. Not a huge problem but it does lead to stupid bugs.

Secondly, I wish I could have python 2.7 and 3.X on my pc. They are pretty different and 3.X has A LOT more features. I can install 2.7 but I will have to modify "PATHS" and do all kinds of things I have no time for. 2.7 python is old and not maintained but its still used in many important python modules. Python 3.X is constantly being improved and that leads to my first problem, simple silly version bugs. If you're like me then you're just gonna end up choosing 3.X because you dont have a choice anyway LOL.



Next, and most importantly, PIP!!!!

PIP is pythons package manager. NPM(node.js) and Composer(php) are other examples of package managers. Package managers allows you to install modules(software and software extensions) for the software you are using from a stable and trusted repository(or repositories). They also help with dependencies of modules and many other very useful things. I was VERY VERY disappointed by PIP. From my research online and in StackOverflow, it seems PIP is a bit of a problem. I tried to get a working version but soon gave up because of the complexity.(I'm lazy, I know..)

Python core developers or those in charge of PIP's development seriously need to improve that Package manager or make another one.
PIP made me appreciate NPM. LOL



Lastly, "Developer Tools Panel" anyone?
Anyway, I want a developer tools for Tkinter like they have in ALL BROWSERS. It might be a lot to ask for and maybe some other libraries/Frameworks have this but I feel like Tkinter would definately benefit from having a PANEL to inspect the GUI.(and hack NASA LOL)
As I mentioned before the box model does take a bit of getting used to. This isnt something I expect soon but I know it would make development faster. Much faster!



SOURCES


DEREK BANAS:
A well Known and respected developer who has many awesome videos on youtube. I followed his 2 hour 2019 Python intro course. Quick and dirty for experienced developers who want to Jump into the code immediately

SOCRATICA:
A cool channel I found recently on youtube. They have a playlist on python that is VERY Technical and thorough but simple to follow. It also helps that the lady doing The Tutorial is also very pretty!

DJ OAMEN:
PAUL OAMEN is very capable and popular developer on Youtube. DJ Oamen has a HUGE selection of video examples on Python. All of the GUI designs I made were spin-offs from his code base.

CODEMY:
Youtube channel by developer JOHN ELDER. John has an AWESOME playlist on Tkinter and goes very deeply into Tkinters individual widget components and layout schemes.



CONCLUSION


PYTHON IS AWESOME, "Finish n Klaar"!

If you enjoyed the post PLEASE visit my LinkedIn profile and Endorse my PYTHON skills. Best of Luck! KEEP CODING!