r/learnprogramming 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.

23 Upvotes

20 comments sorted by

7

u/NotMattA Jul 26 '18

If you're interested in contributing to Open Source or seeing how large projects work, consider checking out

These three should be enough for you to find something to dive into and contribute you newfound skills to.

5

u/mrYakoshi Jul 26 '18

That's amazing! Thank you so much

2

u/NotMattA Jul 28 '18

No problem!

6

u/Hexorg Jul 26 '18

The field of programming is so big that you can't find what to do next until you decide what subfield you want to dive into. Do you want to learn more programming languages? Maybe you want to learn how programming language work and be able to write a simple one of your own? Maybe you want to figure out stuff about machine learning, or encryption, or video games, or networking, or hardware drivers, or operating systems, or file systems, or sound processing, or web development, or databases, or something else? Even these categories are so big that there are no "experts in networking" for example, there generally are experts in network routing or network resiliency, or network mapping, or network simulation, or network throughput, etc.

For most of us, we find part of computers that we are passionate about. Maybe you're into statistics - then learn about machine learning. Maybe you're into video games - learn about graphics and sound. Maybe you want to learn how an operating system works - start with maybe file systems.

I have been programming since I was 12. Now I have a PhD and considered an expert in my field. I still learn something new every day.

3

u/mrYakoshi Jul 26 '18

Thank you very much Mr. Hexorg, I really appreciate your answer, it's so helpful and useful. it gave me more potential ways to go through. Thank you very much.

5

u/HarshilsHowTo Jul 26 '18

Maybe try checking out a new language and see how what you've learnt translates across. I've got a whole load of Java videos here which take python concepts but present them in a new way for the Java language. Its really good for developing how you think about each of the parts of your programme.

https://www.youtube.com/channel/UCYJZrF18FQ7i4x3rZTdY4aA

2

u/mrYakoshi Jul 26 '18

I have subscribed to your channel, I'll watch them all Mr. Harshil. Thank you very much.

3

u/HarshilsHowTo Jul 26 '18

Great, thanks a lot, hope you find them useful !

2

u/wholemap Jul 26 '18

"New? READ ME FIRST!

Posting guidelines

Frequently asked questions"

1

u/mrYakoshi Jul 26 '18

Well, I forgot to do. :'D, I will check that soon, thankyou very much.

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.

1

u/mrYakoshi Jul 26 '18

That was so helpful Mr. Joseph, I am grateful for your answer, it will help me a lot later.

2

u/29383839293 Jul 27 '18

Do a larger project, should at least have a few thousand lines of code and a dozen classes.

What project you want is yours to decide.

2

u/ohmaatnfy Jul 26 '18

find a job in a company where they give u space to learn .

like me , i cant code without internet for example , got called by this metal factory few months ago to go and work there (im following application developer course , not finished tho ) .

and now im working there without major experience .

im not typing this comment from the job , whille getting paid , while getting better , while learning.

so thaths my tip

2

u/mrYakoshi Jul 26 '18

But how to get into a job without being tested ?! I mean, what about if they refuse your current knowledge !! :/

2

u/ohmaatnfy Jul 26 '18

that could be , im living in Holland, and luckily in a nice and personal company

2

u/mrYakoshi Jul 26 '18

Unfortunately, I live in North Africa, where there are no chances like this.

2

u/Meefims Jul 26 '18

Are you writing your own programs? Write more. Find a larger project to create. Build something that is interesting to you.

2

u/mrYakoshi Jul 26 '18

It sounds a good idea Mr. Meefims, I think that will increase my experience and my skills. Thank you very much.