Networking to Programming

offmymoundoffmymound Member Posts: 19 ■□□□□□□□□□
I want to move into Programming. I have a degree in networking. I took a programming class in college as well as a database class. My plan is to start out learning Python and get a really good grasp of it and then learn sql. There are a lot of things that sound interesting in programming to me such as data analysis and devops. I have my CCNA in R&S and want to continue with networking, I just don't think it is right for me. What would be other useful things to learn in order to land an entry programming job?

Comments

  • MitMMitM Member Posts: 622 ■■■■□□□□□□
    Python is good. Not my area but I'd think for Devops, java, python, ruby, Jenkins, etc would be good skills to have.

    Why do you feel networking is not for you?
  • yoba222yoba222 Member Posts: 1,237 ■■■■■■■■□□
    Discrete math, algorithms, design patterns -- better yet look at the curriculum of the school you went to and see which courses you would have took had you done a computer science degree. See if you can access the syllabi of the classes to get an index of the stuff those courses teach. All that stuff.

    For a bit of anecdote, I took computer science 1 and 2 in college. I interviewed for an entry level programming job (which I didn't land) and later found out that some of the questions I didn't know were from concepts covered in computer science 3 and 4.
    A+, Network+, CCNA, LFCS,
    Security+, eJPT, CySA+, PenTest+,
    Cisco CyberOps, GCIH, VHL,
    In progress: OSCP
  • DatabaseHeadDatabaseHead Member Posts: 2,753 ■■■■■■■■■■
    CS Curriculum and one of the code academy should get you off on the right foot. A lot of it depends on your overall aptitude and your design and development aptitude.

    One things I have noticed personally either you are good at this type of work or you are not......

    I've seen system folks brute force themselves into decent system and support folks, level 3 type. But development is more finesse. That's not to say you can't learn how to do it, you most certainly can. The question is how good will you actually become.

    Nothing makes you wench more that a developer turning out buggy code that back doors a lot of requirements, due to lack creatively, design skills and overall lack of he command of the language and libraries.
  • jdancerjdancer Member Posts: 482 ■■■■□□□□□□
    You should create a public git repository and start on a project. Then you can show prospective employers your code.

    For a project, start with a game with your favorite programming language.
  • EagerDinosaurEagerDinosaur Member Posts: 114
    Sounds like a good plan, except I wouldn't wait to start learning SQL, unless you're planning to use a non-SQL database. Most developers use SQL at the same time as languages such as Python, and your Python code will be quite limited if it doesn't have a database to store data in. Learning a bit of HTML, CSS and Javascript is a good idea, as most systems have some kind of web interface these days. If possible, try to learn a bit about general CS topics such as algorithms, data-structures and complexity, those are useful for any kind of development.
  • IronmanXIronmanX Member Posts: 323 ■■■□□□□□□□
    Create a Git Hub account and build a portfolio.

    If you are looking for programming languages to learn that will help land you a job I guess look at what are the most popular languages. Although sometime the best way to land a job is to be proficient in a language that is not popular.
  • ccie14023ccie14023 Member Posts: 183
    You should also consider blending the two skills. Network programmability is a very hot topic right now. See developer.cisco.com for more info.
  • Phileeeeeeep651Phileeeeeeep651 Member Posts: 179 ■■■□□□□□□□
    Wow, this is awesome. I came in here to ask a very similar question!

    I'm kind of in the same situation as you as I am also a network guy and while I like it, I don't love it and my goal right now is to move over to the development side of things. About a month ago I started playing around with Python and creating scripts to push out configs to my lab, pull show commands, etc. and I really feel like I developed a passion for it.

    I've recently started on Ruby doing the Learn Ruby the Hard Way by Zed Shaw (You can pay for the book and get some videos included or you can use the online version for free @ https://learncodethehardway.org/), he also has a Learn Python the Hard Way book that I'm going to jump into after I finish the Ruby book.

    Another course I've been using is a free web dev course at Upskill, Premium Web Development Courses | Upskill. The course walks you through everything from HTML, CSS, Ruby on Rails, etc, so pretty much a full stack. You set up a GitHub profile and push all of your code and updates to it. It's a pretty fun course.

    Another good one was this Learn Git tutorial I found, learngit.today. They walk you through git in the upskill course but I feel like this one did a better job of explaining the "hows" and "whys" of it.

    If you don't mind me kind of piggybacking off your post, I was wondering if anyone had any ideas on possible in between jobs going from networking to software development? I guess something to get my feet wet in the coding-sphere but not necessarily an entry level developer position, if that makes sense.

    Hope this helps. PM me if you have any questions.
    Working on: CCNP Switch
  • Node ManNode Man Member Posts: 668 ■■■□□□□□□□
    Hi Everyone. I am a network engineer and also do a lot of programming/scripting. I just wanted to be the voice of caution and say that while there is a lot of common ground between networking and programming, they are still two different worlds. I love programming because there are so many tools and things you can code to make yourself and others more productive, but it does become an entirely different game when you are working on a big coding project for an employer that demands that you write code at a certain pace and meet deadlines.

    So in short. Coding and Networking are both awesome, but if you have done one for a while, expect the other to be a little more different than expected.
  • Phileeeeeeep651Phileeeeeeep651 Member Posts: 179 ■■■□□□□□□□
    Node Man wrote: »
    So in short. Coding and Networking are both awesome, but if you have done one for a while, expect the other to be a little more different than expected.

    I think that's a really great thing to think about. For me the fact that coding isn't networking is what's most intriguing.

    Without going on too much of a rant, network positions, at least in my area, have become some what of a unicorn unless you can couple your 5 + years of networking experience working with OSPF and BGP with 3-5 years managing active directory as well as linux servers, a CCNP, and another 3 years with Fujitus DWDM equipment. All sarcasm aside, I do enjoy networking but the lack of mid level positions in my area is making me rethink my career track (yes, I am looking at relocating as well). The idea of spending another 2-3 years stuck in a low to mid level junior position, taking calls from customers that don't care about their network, security, etc is just mentally exhausting.

    I guess the idea that if I found a job that required knowledge in say, Javascript, I could go buy a Javascript book or reference Mozilla MDN, create some Javascript apps and gain some experience, sounds like a better use of my time rather than spending 6 hours trying to get a buggy ISO file running on a VM in GNS3 with limited capabilities... Again, just my opinion and maybe I'm on my own island over here lol.
    Working on: CCNP Switch
  • Danielh22185Danielh22185 Member Posts: 1,195 ■■■■□□□□□□
    Over the past couple months, I have been trying to make an effort to introduce coding (specifically Python) into my daily work. I have found its relevance with repetitive tasks/information gathering. I have heard and read that is typically the extent of how people utilize coding within the networking world at least from a network engineering/ops perspective. If coding really is your thing I would definitely try to pursue a lot of what has been suggested previously to immerse yourself in the coding/dev ops world. I don't see coding/automation within networking going extremely deep very quickly.
    Currently Studying: IE Stuff...kinda...for now...
    My ultimate career goal: To climb to the top of the computer network industry food chain.
    "Winning means you're willing to go longer, work harder, and give more than anyone else." - Vince Lombardi
  • jibtechjibtech Member Posts: 424 ■■■■■□□□□□
    Few things...

    First, job (dis)satisfaction. There are jobs that suck in every field, and there are amazing jobs in every field. Finding an area for which you have a passion and an interest, does not mean you will like the job you get in that area. Read some of the posts, and you will absolutely see the good, bad and the ugly in every area of IT.

    Second, programming is an interesting beast. You will find that people who love programming, are doing programming all of the time, whether for work or for personal passion. They have pet projects, contribute to open source, and are generally steeped in the programming world. It isn't 100% true, but it is true enough to serve as a fair generalization. Before you jump into the programming world with both feet, follow some of the advice above. Set up a repository, start a project and see if that really is your passion. As an aside, you would be amazed at how many developers learned to code with no education at all. They may have gotten the education at some point, but it isn't necessarily how they started. Many of them were interested, picked up a book or worked through a tutorial and just kept going.

    Third, programming fundamentals. The fundamentals of programming are criminally easy. Hell, know out the code.org series for grades 6-12, and you will have a good grasp on the fundamentals. Variables, arrays, operations, loops, conditionals, functions and object apply to most languages. Get those concepts mastered, and think through how you would apply them to solve a problem. If you find your brain can conceptualize in that manner, you may have what it takes to be a programmer. If it doesn't, or if you have to fight it, programming may not be for you.

    Finally, how to develop a base level of knowledge. My recommendation would be to learn a few languages that cover the major types: procedural, object oriented, interpreted and compiled. If I had to recommend languages to start with, I would go with:
    PHP
    C++
    C#
    Java
    Javascript
    Powershell
    Python

    If you have an interest in web development, you will definitely want to pick up HTML and CSS, though I personally don't really think of them as programming languages.

    Just my thoughts. Hope they help. If you have any questions, this is a great group of people!
  • ccie14023ccie14023 Member Posts: 183
    Node Man wrote: »
    Hi Everyone. I am a network engineer and also do a lot of programming/scripting. I just wanted to be the voice of caution and say that while there is a lot of common ground between networking and programming, they are still two different worlds.

    Some of us are working very hard to change that. IOS XE 16.3 and higher supports NETCONF with YANG data models, which is essentially an "API" for network devices. IOS XE 16.5 and higher can run Python scripts on box. The worlds are merging a lot lately. Again, I would refer you to DevNet, developer.cisco.com.
Sign In or Register to comment.