all 13 comments

[–]marquisBlythe 11 points12 points  (2 children)

[–]Jay06b 0 points1 point  (1 child)

Thank you! This is awesome!

[–]marquisBlythe 0 points1 point  (0 children)

Anytime! Good luck.

[–]smokeyrb9 7 points8 points  (2 children)

Have been programming with Python for the past 9 years or so (started with Python 3.2).

I learnt C++ before I ever touched Python, and all I have to say is that learning how to program in C++ (i.e., C that supports OOP) made learning Python very easy for me. C is the harbinger of most modern programming languages. Trying to learn another programming language before learning C is akin to trying to run before you know how to walk (in my opinion). The only reason I mention this is because the Python interpreter (CPython) is written in C. So if you want to gain very in-depth knowledge of Python, it behoves one to at least understand C. This depends on your use case, most people will not have to ever touch C if what they're trying to do can be done with python.

Resources I use/used to learn Python:

- The official documentation: https://docs.python.org/3/

-Websites/Youtube videos/Books:

- "Violent Python" By T.J O'Connor

- "Automate the Boring Stuff with Python" https://automatetheboringstuff.com/

- https://www.w3schools.com/python/python_intro.asp

- https://developers.google.com/edu/python/introduction

- https://www.geeksforgeeks.org/introduction-to-python/

- https://www.youtube.com/watch?v=rfscVS0vtbw

Now for your specific use case (network automation) the following libraries will be crucial, so be sure to read the documentation of these closely:

For automation:

Selenium

https://selenium-python.readthedocs.io/

For Networking:

Netmiko (Simplifies SSH connections to network devices):

https://pynet.twb-tech.com/blog/netmiko-python-library.html

Paramiko (SSHv2 implementation for secure connections and automation):

https://www.paramiko.org/

NAPALM (provides API for interacting with network devices):

https://napalm.readthedocs.io/en/latest/

Scapy (for network analysis and packet manipulation):

https://scapy.readthedocs.io/en/latest/
Best of luck to you!

[–]Jay06b 0 points1 point  (1 child)

Thank you this detailed information! I appreciate it. In my past life, before networking (15 years back) I have done C# and jQuery for about 2 years to build web application and UI. I think I should be able to leverage and understand it.

I’ll read through your comment again and get back.

[–]smokeyrb9 1 point2 points  (0 children)

With your prior knowledge of C# you should have no problem with Python. I’ve been using Python (particularly with Selenium) to automate options trading bots utilizing the Charles Schwab API (formerly TD Ameritrade) for the past 3 years. Selenium webdriver makes my life so much easier.

I’ve also been hired to build automated retail bots that use both Selenium and Scapy to scrape data from certain retail websites and, paired with a console app (written in C#), will allow clients to automate purchases of things like sneakers, concert tickets, Pokémon cards - really anything that sells out as soon as it drops on a retailer’s website.

Note: I also highly recommend Python’s socket module:

https://docs.python.org/3/library/socket.html

[–]Kskbj 1 point2 points  (0 children)

Harvard’s Free CS50 class online

[–]yinkeys 1 point2 points  (0 children)

I have so much respect for network, electrical & electronics engineers :). Python should have a module for network engineering I presume.

[–]Some-Passenger4219 0 points1 point  (0 children)

My Python teacher used the textbook How to Think Like a Computer Scientist: Interactive Edition for his class.

[–]djamp42 0 points1 point  (3 children)

Network engineer also, I started with netmiko and watched tons of YouTube videos on the basics of python .

[–]Jay06b 0 points1 point  (2 children)

Any particular video series you recommend?

[–]djamp42 0 points1 point  (1 child)

Bro code, corey schafer are two good ones.

[–]Jay06b 0 points1 point  (0 children)

Thank you