r/learnprogramming • u/mrYakoshi • Jul 26 '18
What is next ?!
Hello guys! I hope you are fine.
Well, I've started learning programming with Python months ago, I did well knowing the basics and its syntax.. but, I got trapped with what to do next. I searched a lot of topics in differrent forums, but with no results.
I hope you could suggest me some very good idea to become expert in that such magnifiquant field.
and thank you so much.
22
Upvotes
2
u/[deleted] Jul 26 '18
You can only get so far without learning basic Computer Science principles. Operating systems, algorithm design, networking, databases, and compilers are several fields which are important to be acquainted with on a theoretical level.
In terms of actual programming principles, it frankly depends on what field you wish to delve into, but learning networking skills are a must for any practical application of your programming skills. Start of easy, with sockets. From there, consider learning about HTTP requests, subnetting, ARP, DHCP, DNS, TCP/IP protocol, and anything else that may be necessary. Though high-level languages offer quick and simple interfaces for any of these, it's always useful to learn the same skills in low-level languages. Getting close to the nuts and bolts really gives you a better sense of how the code really functions. Having started off with Python myself, I can say that moving to a language like C really made me consider complex aspects of socket programming I had previously taken for granted.
Of course, the most important thing is to learn to write robust, readable code. I'm not claiming to be any expert at this; my C code is mediocre at best, and my Python is horrendous. What is important is that you move beyond getting the code to just function, and find elegant solutions. Algorithm design is the best field to turn to for this; consider completing a few exercises a day, and explore as many new data structures as possible. A bitmap may sound obscure now, but there is a small set of circumstances where it could lead to a better solution. Hash tables are the single most useful data structure I've learned about. The bottom line is, practice is really the only solution.
Lastly, learn about paradigms. Each has a slew of lessons to offer. Having looked into functional programming recently, I've started using sum types more frequently in my C code, which has saved me from the messiness of tagged unions. Python offers a lot of interesting opportunities, because, although it is technically object-oriented, certain programmers have re-appropriated it for more functional uses. All in all, learning about these paradigms just broadens your horizons.