What about the case of the strong coder who decides that networking is more interesting as a life's work, moves into networking, will not consider employment where coding is even a remote possibility, and will successfully land another networking job elsewhere if management even brings up the subject of coding? I think this describes the great majority of networking professionals. -----Original Message----- From: Owen DeLong [mailto:owen@delong.com] Sent: Monday, February 27, 2012 2:14 PM To: david raistrick Cc: NANOG Subject: Re: Programmers with network engineering skills On Feb 27, 2012, at 12:31 PM, david raistrick wrote:
On Mon, 27 Feb 2012, Owen DeLong wrote:
I think you're more likely to find a network engineer with (possibly limited) programming skills.
While I'll agree about the more likely, if I needed a coder who had a firm grasp of networking I'd rather teach a good coder networking, than try to teach the art and magic of good development to a network guy.
Well, I won't call myself a hard-core coder, but, I think I have a reasonable grasp on the art and magic of good development. What I mostly lack is speed and efficiency in the language of choice for whatever project. I can write good code, it just takes me longer than it would take a hard-core coder. OTOH, having done both, I would say that I think you are not necessarily correct about which direction of teaching is harder. Yes, if you start with a network engineer that knows nothing about writing code or doesn't understand the principles of good coding, you're probably right. However, starting with a network engineer that can write decent code slowly, I think you will get a better result in most cases than if you try to teach network engineering to a hard-core coder that has only a minimal understanding of networking.
I think it really comes down to which you need: a hardcore network engineer/architect who can hack up code, or a hardcore developer who has or can obtain enough of a grasp of networking fundementals and specifics to build you the software you need him to develop.
I'm guessing that someone who needed a hard-core developer that could grasp fundamentals would have grabbed an existing coder and handed him a copy of Comer. The fact that this person posted to NANOG instead implies to me that he needs someone that has a better grasp than just the fundamentals. Of course I am speculating about that and I could be wrong.
The ones who already know both ends extremely well are going to be -very- hard to find, but finding one who can learn enough of the other to accomplish what you need shouldn't be hard at all.
Depends on what you need. However, I think it's faster to go from limited coding skills with a good basis in the fundamentals to usable development than to go from limited networking skills to a firm grasp on how networks behave in the real world. To the best of my knowledge, nothing but experience will teach you the latter. Even with 20+ years experience networks do still occasionally manage to surprise me.
...d (who is not exactly the former though I've played one for TV, and not at all the later)
I am admittedly lost given the three choices as to which constitutes former or latter at this point. 1. Strong coder with limited networking 2. Strong networker with limited coding 3. Strong in both Owen Who is a strong network engineer Who has been a professional software engineer (though many years ago and my skills are rusty and out of date) This communication, together with any attachments or embedded links, is for the sole use of the intended recipient(s) and may contain information that is confidential or legally protected. If you are not the intended recipient, you are hereby notified that any review, disclosure, copying, dissemination, distribution or use of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by return e-mail message and delete the original and all copies of the communication, along with any attachments or embedded links, from your system.