On Thursday, September 03, 2015 01:16:47 AM James wrote: > Alan McKinnon <alan.mckinnon <at> gmail.com> writes: > > > Last, I suggest a parallel learning of C/C++ as it really helps > > > > ^this^, after the basics are fully mastered. > > > > netmasks make no sense at all until bitwise operators are fully > > understood. Even CIDR notation is not really obvious until you > > understand what languages like C do with the 32 bit words we call IP > > addresses. All x10 when IPv6 comes into play > > Huh. I find teaching networking, including the intricacies of advanced > protocol design, implementation and debugging, are far simpler if > folks know at least one programming language. Bit manipulations > are but one part of logic, sequential circuits timing and such > of the Computer Engineer's domain. In my experience, if folks read too > much, but do not play with some codes on actual hardware, it all becomes a > giant nebula. I guess I just like the practical side of these issues, to get > folks hooked on hardware. > > > How a serial port (rs_232) works and the putting ppp over that is very > keen for teaching networking. ymmv. You can also use a protocol analyzer to > see some cool things. Many codes are published and looking at how a > microprocessor handles basic packets is very stimulating and encouraging. > Too bad most kids now days do not get to work on embedded hardware and build > up an executive or state machine and send/recieve data over interfaces. > Granted I worked in the world where assembler was > king (embedded) and assembler folks learning C and tcp/ip were easily amazed > and happy to migrate from assembler to C. > > As Joost pointed out, I guess it really depends on the background of > the student. Being a hardware guy, I guess my focus is tainted.... > > So, fair enough, but how long (exactly what are the basics) do you > read before you go to the lab and play? Labs are always more fun > than classrooms, lectures and stuffy old farts.............(gotcha!) ? > > > cheers, > James
If you want to base it on programming, I would recommend the following as well: http://beej.us/guide/bgnet/ -- Joost