Best computer networks & apis books according to redditors
We found 709 Reddit comments discussing the best computer networks & apis books. We ranked the 217 resulting products by number of redditors who mentioned them. Here are the top 20.
We found 709 Reddit comments discussing the best computer networks & apis books. We ranked the 217 resulting products by number of redditors who mentioned them. Here are the top 20.
My sister's. I kid you not. Fragment of the large painting is featured on a book of mine.
The "Practice of System and Network Administration"; probably a bit too early in your career but has some strong advice.
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165
There's also a volume 2 which is cloud/site reliability engineering related.
I love learrning linux! I love the community! You aren't following a trail of breadcrumbs, you are racing down a superhighway of information. Google/duckduckgo is now you best friend, it pays to learn how to work with them.
Books:
The linux command line
The Linux Bible
UNIX and Linux System Administration Handbook
​
Where to ask questions and find information:
https://askubuntu.com/
https://www.linuxquestions.org/
https://www.linux.org/
https://www.linux.com/forum
https://stackoverflow.com/
https://unix.stackexchange.com/
https://ubuntuforums.org/
https://wiki.archlinux.org/
​
How to ask questions for maximum help:
https://unix.stackexchange.com/help/how-to-ask
https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
​
Tutorials:
Linux Journey
This dude called Ryan is pretty cool
This guy Dave has a really nice voice on youtube
Linux Foundation
linuxcommand
linuxsurvival
​
Linux learning games:
Terminus
wargames
​
Subreddits you might want to get into at some stage, or subscribe to, I just made a big multireddit that I use when I want to focus my redditing on positive use of my time:
​
Some distros:
Ubuntu
RHEL
ArchLinux
centos
openSUSE
fedora
Linux Mint
​
This is a big ass list of stuff to look at and seems really daunting, start off really simple and learn these commands:
​
Tip: for any of those command you can look at the man page by typing:
man <command>
&#x200B;
examples:
man touch
man ls
&#x200B;
Edit: The only thing I would warn you of is that learning can be quite lonesome, it is a very individual pursuit, the answer to almost every question has been asked and answered before, you just need to google the right stuff, think hard and google hard before asking questions, you will run into some toxicity if you do not, I do believe at times that it is justified but you can insulate yourself from too much negativity by really putting in some of the grind before asking questions online. The reward for asking smart questions is help from people that go out of their way to help you, help them help you.
&#x200B;
Enjoy the rabbit hole!
Consider buying these, or checking them out from local library:
Network Warrior
The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition) 3rd Edition
-----
Cisco / Networking
Stanford University Free Introduction to Networking Online Course
Cisco Learning Center - How to Study for CCNA for Free
Professor Messer's CompTIA Network+ Training Videos
Cybrary Free CCNA Training Videos
Cisco VIRL - Virtual Router & Firewall Training Tool
GNS3 Vault - Free Practice & Training Labs for Cisco Equipment
Cisco Live Training Convention Video Portal - Free Registration Required
Cisco Design Zone - Best Practices
PacketBomb - WireShark Training Center
NetCraftsmen - Network Consultants Blog
PacketPushers News & Podcasts
IOSHints - Ivan Pepelnjak's Blog/site
Cumulus Networks SDN Technical Videos
SDX Central - SDN Resources
-----
The Best of Cisco Live
Cisco Live is Cisco's annual Technology expo & training convention.
All of these presentations are available for free here: http://www.ciscolive.com/online - Many with video presentations of the lectures.
BRKARC-3001 - Cisco Integrated Services Router G2 - Architectural Overview and Use Cases (2013 Orlando) - 2 Hours
BRKARC-3001 - Cisco Integrated Services Router 4000 - Architectural Overview and Use Cases (2015 San Diego) - 2 Hours
BRKARC-2001 - Cisco ASR1000 Series Routers: System & Solution Architectures (2015 San Diego) - 2 Hours
BRKARC-1009 - Cisco Catalyst 2960-X Series Switching Architecture (2016 Las Vegas) - 90 Mins
BRKARC-3438 - Cisco Catalyst 3850 and 3650 Series Switching Architecture (2015 San Diego) - 2 Hours
BRKARC-3445 - Cisco Catalyst 4500E Switch Architecture (2015 San Diego)
BRKARC-3465 - Cisco Catalyst 6800 Switch Architectures (2015 San Diego) - 90 Mins
BRKARC-2222 - Cisco Nexus 9000 Architecture (2015 San Diego)
...
BRKCRS-3147 - Advanced troubleshooting of the ASR1K and ISR (IOS-XE) made easy (2015 San Diego) - 2 Hours
BRKCRS-3146 - Troubleshooting Cisco Catalyst 3650 / 3850 Series Switches (2015 San Diego) - 2 Hours
BRKCRS-3142 - Troubleshooting Cisco Catalyst 4500 Series Switches (2015 San Diego) - 2 Hours
BRKCRS-3143 - Troubleshooting Cisco Catalyst 6500 / 6800 Series Switches (2015 San Diego)
BRKDCT-3101 - Nexus 9000 (Standalone) Architecture Brief and Troubleshooting (2015 San Diego)
...
It seems your problem is not programming, but architecture. Namely, how the client-server architecture that most of the web is based on works.
Unfortunately, I couldn't find something that's both easy to understand and comprehensive enough, and I can't really write it here, as either I would have to simplify it too much or I'd have to write way much more than I'm comfortable writing.
So keep google for client server architecture until you find a book/tutorial/article/video/etc that makes you understand and go from there. Don't worry about languages, liibraries, frameworks and all that mumbo-jumbo for now, just focus on understanding what happens when you interact with a website, from start to end. Once you understand that, choose a language, find a framework that you think you'd like and start learning it (some frameworks, like Django, have very comprehensive tutorials). And then you keep improving that until you're satisfied with your project - or you hit your deadline, that product got to ship someday!
EDIT: Actually, I do have a recommendation: the Computer Networking: A Top-Down Approach book. Reading the first chapter will probably be enough for you, but if you enjoy it, you can read a lot more and really (begin to) understand how the Internet (and computer networks in general) work.
Networking
Networking is networking. There's no difference who does it.
&#x200B;
Regardless, this is a timeless book: https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313
Computer Networking: A Top-Down Approach (7th Edition)
https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149
CS144 Introduction to Computer Networking Stanford University
https://suclass.stanford.edu/courses/course-v1:Engineering+CS144+Fall2016/courseware/ac9d1eef5aaa4bb5bcfe4d42f51f0f5b/c5c384e648cf404c837d05497c6e36b0
Beej's Guide to Network Programming
http://beej.us/guide/bgnet
Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551
High Performance Browser Networking
https://hpbn.co
Eli The Computer Guy Youtube
https://www.youtube.com/playlist?list=PLF360ED1082F6F2A5
Load Balancing Servers, Firewalls, and Caches
http://www.amazon.com/Load-Balancing-Servers-Firewalls-Caches/dp/0471415502
More at http://Learn.SharjeelSayed.com
I was in your same shoes 3 years ago when I took my first SA internship. I was the only person on site for 8 employees locally, 30 around the country.
I was scared to make actions at first but the first thing you need to do is learn your network in and out and document the shit out of everything before you even make a change. After that, you will be confident and I am sure of it.
1.) Begin a document called "IT Department Handbook" - add everything you find to it, except passwords. Refer to it, love it, it will always save you. Include disaster recovery in it. Make it so that a third grader can understand it. I have one thats 50 pages right now. This will save you as it has saved me so many times. Make it confidential though, because it will end up holding information you don't want people to see on the outside such as IP addresses and your network map.
2.) Keep passwords file but separate from the system and indistinguishable. I actually keep a password file on my phone in my memo's app but I don't have the full account usernames associated with each one. I provide really indistinguishable hints to the username, usually riddles that only I would know.
3.) Get Veeam endpoint backup and find a place to backup your DC (full backup) and any databases at the very least. You can create a standard for backups later.
3a.) Find the Domain Controller's recovery password immediately.
3b.) Create a recovery USB for all your servers and put them in a location where you can find them later.
4.) Get a Network Diagram going, then after that...
5.) List all Roles and Features each server has on the network diagram, what each server stores, what applications run on them and how essential they are to the business. Example: Domain Controller. No domain controller, no work can be done. CRM: No crm, people can't keep of their cases on the webserver but rather locally, they can live without it for a short time. Start thinking about disaster recovery.
6.) Develop a Khanban System. It's an agile project management method I learned from reading This Book -- I highly suggest buying this to help you better your practice. Put tasks in the backlog and move the ones you think need to be done sooner than others to your daily or weekly sprint.
7.) Find out who uses what server for certain tasks. This may take a while but it helps.
8.) Something I do personally before doing any changes to Group Policy or Regedit is I save their current configurations before making changes. Therefore, if something doesn't work right after a setting is changed, you can quickly revert back to it's last state.
9.) If you have the capability and hardware, get clustering going. So if a DC1 fails, DC2 takes over and everyone can still authenticate and work.
10.) If you have the capability and hardware, create a test environment reflecting your live network on a very small scale but enough to test "Ok so if I make this change, can people from workstations still login, can they still access the development server... etc." - you can create a test domain under your current forest and have it remain separate in this test environment.
11.) If it's not already in place (this might take some time) create a naming nomenclature standard. I.E. DC1.example.com (domain controller 1), DC2.example.com, PS1.example.com (production), WEBS1.example.com (webserver), TE1.example.com (test env.), WK1.example.com (workstation number 1...2...), VM1.example.com (virtual machines). This will help when it comes to debugging issues. My boss likes to make personal names for his servers which drives me fucking nuts because we have 20 servers between us and our clients that we manage. It's a lot better for him to mention "yea I cant get into PS1." rather "I cant get into rabbit" - and there I am trying to remember which server rabbit is and what features it holds off the top of my head; which is where a network diagram can come into play.
This book has been suggested a few times so I finally got around to reading it. I think it has some good information in it. I'm only about halfway through it, but I like it so far.
Time Management for System Administrators
Other books would be any of the social books like "How to influence people", "7 healthy habits..." Etc.
I haven't read this one yet, but It has been suggested to me if you plan to go more into management/leadership Start with Why
Other books that have I have ear marked due to being mentioned:
Also, do a search for "Books for IT Professionals" to find a lot of other suggestions.
La mia classe (5° Informatica) ed un'altra (4° Informatica) sono le uniche dell'istituto con la LIM montata in classe e disponibile 24/7. Ne abbiamo anche un paio in altri laboratori.
Noi le LIM le usiamo spesso, sono parecchio utili in diverse materie e rendono la lezione più interattiva e meno pesante (No non sto cercando di vendervele).
Ad esempio in Italiano ci possiamo proiettare i testi degli autori che studiamo (reperibili gratis di solito visto che gli autori sono defunti da un bel po') e la Prof ci appunta sopra tutto quello che vuole, cosi': A) lei è contenta B) tu non ti perdi nulla C) Salvi il PDF e ce lo hai a casa sincronizzato su DropBox
In Storia mettiamo foto/quadri famosi oppure ogni tanto qualche reperto storico preso da YouTube (o addirittura vediamo documentari di Piero Angela).
In Inglese molto spesso usiamo Internet per trovare informazioni/qualcosa di più sugli argomenti che stiamo affrontando (in particolare inglese tecnico e specifico del campo informatico), visto che il libro qualche volta sbaglia (probabilmente perchè è scritto da gente che non ci capisce quasi nulla di informatica / programmazione)
In Matematica viene usata sia per disegnare grafici di studio di funzione / calcolo di limiti con software specializzati (GeoGebra ad esempio) che per vedere lezioni svolte su YouTube o esempi di esercizi affrontati in modo diverso da come li affronta il prof (Consiglio https://www.youtube.com/user/LessThan3Math).
Per materie più tecniche come (informatica / sistemi & reti / progettazione sw / elettronica) proiettiamo sempre documentazione / testi tecnici scritti da gente che ne sa veramente (ad esempio questo http://www.amazon.com/Computer-Networks-Edition-Andrew-Tanenbaum/dp/0132126958 per sistemi & reti), che alla fine rendono inutili i libri di testo che le altre classi usano. Inoltre ci facciamo girare i programmi scritti a casa senza andare nei vari laboratori, oppure le simulazioni dei circuiti per elettronica.
Poi in ogni materia la LIM viene usata come lavagna e non c'è più il problema dei gessi finiti, del cancellino sporco, del "non c'è più spazio, posso cancellare ragazzi?", si salva tutto e lo si rilegge a casa.
Ovviamente poi sulla LIM si vedono bene i Film per le ore buche, si gioca bene a Scacchi/RTS con il touch e c'è anche un ottimo impianto audio per sentire anche dalle altre classi i video di YouTube, ma questa è un'altra storia.
Noi usiamo cosi' tanto e penso cosi' bene la LIM perchè i prof hanno seguito un corso per imparare tutti i minimi segreti, o meglio a raccogliere un pennarello finto e scrivere.
La nostra classe è anche una delle poche che usa il tablet al posto dei libri cartacei, se vi interessa dopo vi posso scrivere anche di questo.
La nostra scuola usa anche un registro elettronico al posto di quello cartaceo, anche qui se volete vi dico i pro e contro.
TL;DR: Abbiamo la LIM, elenco gli usi della LIM, se i prof la sanno usare è utilissima. Infine un TL;DR.
Visto che il commento è stato di gradimento di alcuni allora spiego anche i tablet e i registri elettronici.
Tablet
All'inizio della terza la nostra classe è stata scelta per questo progetto di usare i tablet in classe, in particolare al posto dei libri cartacei e / o come supporto di lavoro.
La scuola si è offerta di pagare metà tablet mentre noi dovevamo pagarci l'altra metà. Il tablet scelto è stato un Nexus 7 32GB di prima generazione. Un buon tablet. Chi aveva già un tablet a casa (4 o 5 su 27) avevano il permesso di usare il loro.
Consegnato il tablet (dopo aver atteso 1 mese e mezzo circa, forse 2) abbiamo subito acquistato i libri di testo disponibili sulla piattaforma Scuolabook. Il prezzo dei libri digitali è minore rispetto a quello di quelli cartacei.
Il primo problema che abbiamo riscontrato è stato riguardo all'applicazione per tablet di Scuolabook (sia Android che iOS): crashava di continuo, lenta, faceva tutto tranne quello che doveva fare. Ti faceva passare la voglia di studiare. Alla fine ci siamo un po' abituati.
Qui nasce ora la domanda: meglio la carta o il tablet? Sono gusti. E' una cosa personale, c'è gente che non lascerebbe i libri di carta per nulla al mondo, soprattutto se ci devi studiare sopra, ma ad esempio io mi sono abituato abbastanza bene a studiare sui pixel. I quaderni, almeno quelli, sono sempre di carta.
Cosa può servire il tablet? Si evitano fotocopie, si scrive abbastanza veloce con la tastiera, eviti di trovare forme falliche sugli appunti etc etc.
In 3° molti perdevano tempo con giochini vari e cazzate del genere ma anche a causa del wifi scarso della scuola la nullafacenza è via via scomparsa. Ora il tablet viene usato per cazzeggiare solo in lezioni particolarmente noiose, perchè prima o poi i giochi finiscono.
Il problema dell'app scarsa di Scuolabook è stata risolta rimuovendo i DRM dai libri e convertendoli in PDF da aprire con adobe.
Dopo/domani scrivo riguardo il registro.
I'm sort of in the same boat as you, except with an aero and physics background rather than EE. My approach has been pretty similar to yours--I found the textbooks used by my alma mater, compared to texts recommended by MIT OCW and some other universities, looked at a few lists of recommended texts, and looked through similar questions on Reddit. I found most areas have multiple good texts, and also spent some time deciding which ones looked more applicable to me. That said, I'm admittedly someone who rather enjoys and learns well from textbooks compared to lectures, and that's not the case for everyone.
Here's what I gathered. If any more knowledgeable CS guys have suggestions/corrections, please let me know.
Full disclosure: I haven't actually read more than the preface of any of those books. Software engineering topics are more directly applicable to me than CS topics right now, so here are some that I've actually started reading:
Some very good books on networking basics:
Computer Networks
TCP/IP Illustrated
Here is a "curriculum" of sorts I would suggest, as it's fairly close to how I learned:
Generally you'll probably want to look into IA-32 and the best starting point is the Intel Architecture manual itself, the .pdf can be found here (pdf link).
Because of the depth of that .pdf I would suggest using it mainly as a reference guide while studying "Computer Systems: A Programmers Perspective" and "Secrets of Reverse Engineering".
Of course if you just want to do "pentesting/vuln assessment" in which you rely more on toolsets (for example, Nmap>Nessus>Metasploit) structured around a methodology/framework than you may want to look into one of the PACKT books on Kali or backtrack, get familiar with the tools you will use such as Nmap and Wireshark, and learn basic Networking (a simple CompTIA Networking+ book will be a good enough start). I personally did not go this route nor would I recommend it as it generally shys away from the foundations and seems to me to be settling for becoming comfortable with tools that abstract you from the real "meat" of exploitation and all the things that make NetSec great, fun and challenging in the first place. But everyone is different and it's really more of a personal choice. (By the way, I'm not suggesting this is "lame" or anything, it was just not for me.)
*edited a name out
I would also like to take the time to plug a few resources, if I may, that have greatly assisted me throughout my career.
> Alexandrescu didn't create the D language...
I don't think that's what the original commenter (or perhaps the source they were quoting) was saying. Rather, they were saying that Alexandrescu was the author of the book the The D Programming Language.
Thanks ;). Not so skilled on that and my advice might be misleading; though I got a background in cs:This would be my suggestion for someone beginning.
You can also search for those books pdf by using google hacks eg
filetype:pdf "title of the book here"
orintitle:index.of "title of the book here"
Big fan of that book. New edition due soon too!
You will pick up the knowledge fairly quickly, but the wisdom part comes slowly.
Read some books:
Start humble, stay humble, be quick to listen and slow to speak, and don't make changes on Friday!
> It's not something you can pick up from a book
It's totally something you can pick up from a book. It's not magic.
Practical Packet Analysis
Using the with statement is the recommended way to do this, which works like a try-except-finally statement (see the Note). The authors forgets to close() the file descriptors after opening them. See warpstalker's reply below, or the Input & Output section of the official tutorial.
The fileinput module also exists to help process different methods of input, avoiding the need to write cases for sys.stdin, sys.argv, or direct user input (although users would have to send ^D after typing their input).
I've also yet to encounter python programmers who do as he says, but I often encounter java -> python programmers who use nested for loops instead of list comprehensions or generators. Old habits die hard.
At the bottom of the article, the author states (his referral code removed):
> I have not read ""Python for Unix and Linux System Administration":http://www.amazon.com/dp/0596515820/" but the table of contents looks excellent.
Beware advice from those who recommend books they haven't read.
Instead of using the subprocess module directly, use Kenneth Reitz' Envoy: Subprocess for Humans wrapper, and possibly combine it with his Clint: Command Line Tools.
Anything I've said which contradicts official documentation should be disregarded.
1.) We always post open positions on http://jobs.redhat.com/job-search-results/ but if your in the market send me a pm and we can discuss this further.
2.) You don't need to be certified however it is a requirement that before you start supporting customers that you have your RHCE. We have some great instructors here and the one who taught me is Chris Negus author of the Linux Bible
3.) Didn't eat breakfast but the new cafeteria is amazing!!
Good on you for looking to grow yourself as a professional! The best folks I've worked with are still working on professional development, even 10-20 years in to their profession.
Programming languages can be thought of as tools. Python, say, is a screwdriver. You can learn everything there is about screwdrivers, but this only gets you so far.
To build something you need a good blueprint. For this you can study objected oriented design (OOD) and programming (OOP). Once you have the basics, take a look at design patterns like the Gang of Four. This book is a good resource to learn about much of the above
What parts do you specify for your blueprint? How do they go together? Study up on abstract data types (ADTs) and algorithms that manipulate those data types. This is the definitive book on algorithms, it does take some work to get through it, but it is worth the work. (Side note, this is the book Google expects you to master before interviewing)
How do you run your code? You may want to study general operating system concepts if you want to know how your code interacts with the system on which it is running. Want to go even deeper with code performance? Take a look at computer architecture Another topic that should be covered is computer networking, as many applications these days don't work without a network.
What are some good practices to follow while writing your code? Two books that are widely recommended are Code Complete and Pragmatic Programmer. Though they cover a very wide range (everything from organizational hacks to unit testing to user design) of topics, it wouldn't hurt to check out Code Complete at the least, as it gives great tips on organizing functions and classes, modules and programs.
All these techniques and technologies are just bits and pieces you put together with your programming language. You'll likely need to learn about other tools, other languages, debuggers and linters and optimizers, the list is endless. What helps light the path ahead is finding a mentor, someone that is well steeped in the craft, and is willing to show you how they work. This is best done in person, watching someone design and code. Also spend some time reading the code of others (GitHub is a great place for this) and interacting with them on public mailing lists and IRC channels. I hang out on Hacker News to hear about the latest tools and technologies (many posts to /r/programming come from Hacker News). See if there are any local programming clubs or talks that you can join, it'd be a great forum to find yourself a mentor.
Lots of stuff here, happy to answer questions, but hope it's enough to get you started. Oh, yeah, the books, they're expensive but hopefully you can get your boss to buy them for you. It's in his/her best interest, as well as yours!
I'd go read books about the A+ cert (you don't need to certify but it's great material).
For other technical things I recommend a lot of books that are amazing:
Use technology books to learn processes, not end results. To be a better IT person, you should know how computers work as a system, not how to do say "Map network Drive in Windows", learn how those drives are mapped, what are the underlying fundamentals?
Check out the following books:
TCP/IP Illustrated, Volume 1: The Protocols: The Protocols v. 1 (Addison-Wesley Professional Computing) https://www.amazon.co.uk/dp/0321336313/ref=cm_sw_r_cp_api_i_HsfhDb3TC15DK
By Gary A. Donahue Network Warrior (2nd Edition) https://www.amazon.co.uk/dp/B00NBJPIV8/ref=cm_sw_r_cp_api_i_ltfhDbJCDDXG7
The Practice of System and Network Administration, Second Edition
UNIX and Linux System Administration Handbook - 4th Edition
[TCP/IP Illustrated, Volume 1: The Protocols - 2nd Edition] (http://www.amazon.com/gp/aw/d/0321336313/)
These should be part of every ops department's library, if not already in your own personal one.
The Practice of System and Network Administration.
A few general principles:
When i was first learning here is the book i found most valuable.
Group Policy: Fundamentals, Security, and the Managed Desktop 3rd Edition
by Jeremy Moskowitz
ISBN-10: 1119035589
ISBN-13: 978-1119035589
Here are a few books I recommend:
Blue Team Handbook
Defensive Security Handbook
The Practice of Network Security Monitoring
Crafting the Infosec Playbook
And don't forget the NIST Cyber Security Framework
Even more formatting fun!
By the way, thank you for this list.
The TCP/IP Illustrated series is very good, if you have some basic knowledge. If you are just starting out, then I'd recommend Tanenbaum's Computer Networks. Whatever book you get, make sure it's one that focusses on Ethernet and TCP/IP, for the most part. You can specialize into other networks later as you need to, but those two are the most widely used in industry by far.
Another way to learn about networking is through practice. Set up a home network, write a basic client and server using sockets, play with tcpdump, etc.
Worth noting that there is a third edition that is significantly updated. I own both would say they're both good but you'll get a lot more out of the third edition.
https://www.amazon.ca/Practice-System-Network-Administration-Enterprise/dp/0321919165
Computer Networking: A Top Down Approach by Kurose and Ross is often highly recommended.
Things you should download:
The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition) https://www.amazon.com/dp/0321919165/ref=cm_sw_r_cp_apa_i_YBkxDb2D8ZNHG
/thread
> it just started updating Windows 10, no warning or anything.
Hello!
My name is Elder Temple-Noble, and I would like to share with you this most amazing book. It's a book about
Americaan OS written a long, long time ago. It has so many awesome parts. You simply won't believe how much this book will change your life. Did you know thatJesusStallman lived here in the USA?Get this book.
http://www.amazon.com/Practice-System-Network-Administration-Edition-ebook/dp/B004JLMUJ0
This has been one of my favorite books: http://www.amazon.com/Linux-Bible-Christopher-Negus/dp/111821854X/
And I read through this entire book: http://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/
They are both great!
Edit: I can't type much because my internet is going out regularly at the moment, otherwise I'd love to elaborate further.
Read something like this to get the ideas first, then go to TCP/IP Illustrated for the details. The TCP/IP Illustrated book is almost like an encyclopedia. If you want practical knowledge quick:
http://www.linuxhomenetworking.com/wiki/
and also play around with virtual machines. You can establish networks between your virtual machines. The networking certification exams have study guides too, although they have a poor reputation (I don't really know why).
I also don't really know why I'm getting downvoted.
https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149
Loved reading this during my undergrad
Really happy to see interest in D. I think it's an excellent programming language to start with, and there's a few more resources than you might think.
Great introduction to programming in general
http://ddili.org/ders/d.en/index.html
A more advanced overview of D
http://www.amazon.com/D-Programming-Language-Andrei-Alexandrescu/dp/0321635361
Make sure to check out Rosetta Code for tons examples:
http://rosettacode.org/wiki/Category:D
Web programming is a good way to start out
http://vibed.org/
For an example web project, used in production:
https://github.com/rejectedsoftware/vibenews
Most of these links can of course be found at:
http://wiki.dlang.org/Books
Make sure you check out the new API documentation:
http://dlang.org/library/index.html
And don't miss out on all of the great projects in D:
http://wiki.dlang.org/Open_Source_Projects
http://code.dlang.org/
If you have any questions, you can always post on the forums, but I've found that an even better way to get feedback is through the #D channel on irc.freenode.net.
Feel free to message me directly with questions too! I'm relatively new to the language myself, but I have a solid background in other languages and I'm transitioning to D as my go-to language.
The senior part is more of a technical grade level and not necessarily management... granted I'm in the lead role here, it's my first time as one. All I can say is what help me spring forward at a lull at mid-level was picking up Thomas Limoncelli's books, [the sysadmin one] (https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?ie=UTF8&amp;qid=1512041042&amp;sr=8-1&amp;keywords=thomas+limoncelli) and [the cloud one] (https://www.amazon.com/Practice-Cloud-System-Administration-Practices/dp/032194318X/ref=sr_1_3?ie=UTF8&amp;qid=1512041042&amp;sr=8-3&amp;keywords=thomas+limoncelli) /r/sysadmin recommends them too. These are your best practice books, these tell you why to do things, not how. It will turn you from being the guy that mops the floor in a burning building into knowing when to yell, "FIRE!"
Cert wise, unless a specific company or contract requires it, I don't bother with the time and money on certs if you already have years of experience on the books. I'd probably go for a Security+ and then go for a Red Hat and/or CCNA certification as they are both prestigious. Red Hat is a big deal just by its practical application test.
If you want to go into cloud related stuff, you might want to brush up on your programming. This is what is limiting me, I have very minimal bash scripting experience coming from military in the Windows world then making a move to Linux.
Honestly, I would focus on being both as they both overlap very often unless you are in really large stovepipe enterprise environments, but you never know if you need to make a move to something smaller where you have the many hats role. I'd get your degree in something Computer science related (CS, CIS, EE, CE, etc) and then go RHCSA/CE and maybe Sec+/Net+ or instead of Net+ just go for something Cisco related. My networking is Net+ strength at best and I resent not doing better when I was younger.
EDIT: Also, if you can do the math, BS is Computer Science all the way... sysadmins are still really kind of not doing well in the degree program department, mainly because were so... trade-like I guess. Honestly, we're the new Millwrights like my dad was. We keep the factory going and fix it when production stops. It's kind of cool actually, it's nice to be able to have some kinship to my dad in that way.
I used to take things apart as a kid; VCRs, RC cars, TVs, PCs, etc.. just to see how they worked. Went to school for 2.5 years learning programming (C++, Java, HTML (if you can call that programming)), hated that and the personalities (I;m introverted but programmers / devs are next level introverts). Transferred to a music track at another school and finished with my BA. Got a job in music, but missed IT so I applied for a business analyst role at the same company - worked with devs doing light SQL work and end users assisting in the deployment of an internal CRM. Moved on from there to an internal IT spot, then after that an MSP - another MSP, which is what I'm doing now.
Got experience in VMware (and VDI), a bit of Azure, lots of onsite support and have done work for high profile clients, celebrities, CEOs, etc.. basically do what you need to do to get the job done. I'm constantly learning, the next stuff I want to learn is networking - as in high level network - using the TCP/IP Guide (https://www.amazon.com/TCP-Guide-Comprehensive-Illustrated-Protocols/dp/159327047X/ref=sr_1_3?keywords=tcpip+guide&amp;qid=1573236473&amp;s=books&amp;sr=1-3) and Internetworking (https://www.amazon.com/Internetworking-TCP-IP-One-6th/dp/013608530X)
Also need a lot of Linux experience since VMware and Cisco products are based off that. Start with the fundamentals and go from there.
I fucking love what I do. I have an A+ cert from years ago, but haven't bother with anything since. I do a lot of work for hedge funds now so it's more who you know than what you know - I'd like to get a cert in the future but don't really have the time. If you have any questions or want me to take a glance at your resume just send me a message and I'll shoot over my email.
And full disclosure, IT has a lot of bullshit you need to deal with, if you can't handle that or deal with it the correct way (read: just deal with it) then you're gonna have a bad time - shit will break, things will fail, backups will take huge dumps, but you just have to have the mindset that you can fix it or know where and how to find the answer (vendor support tickets are your best friend - specific to Cisco TAC. lol)
> Definitely want to try using it once Alexandrescu's book comes out and 2.0 becomes stable.
Check out Jeremy Moskowitz latest edition of: Group Policy: Fundamentals, Security, and Managed Desktop. I have the previous iteration which was highly informative. The latest version includes content for Windows 10.
http://www.amazon.com/Group-Policy-Fundamentals-Security-Managed/dp/1119035589/ref=sr_1_1?ie=UTF8&amp;qid=1462452657&amp;sr=8-1&amp;keywords=Group+Policy
This book is pretty good. You can jump to whatever area you’re struggling with/want to improve. Lessons Learned in Software Testing
Once you're comfortable with the basics and you want to learn a bit about program design I can really recommend Adaptive Code: Agile coding with design patterns and SOLID principles. After my teacher told me he was happy with my code but thought I should focus more on the SOLID principles to get it to the next level, I read this book. The first couple of chapters cover Agile and Kanban which was interesting, but I certainly got the most out of the next chapters covering the SOLID principles. Thorough explanations on each one of them.
Start with Andrew Tannenbaum's book?
No question, W. Richard Stevens' books on the protocols and the implementation were the definitive works.
I haven't gone back to them recently to see how they've aged, but much of what I know about TCP/IP, I learned from those books. (I was tasked with switching over the internal communications on a large telecom system from a proprietary protocol to TCP/IP - again, I'm talking about the communications between boards in the system, not outside to switching centers and COs.)
Unfortunately, Vol. 3 pre-dated HTTPS (and SSL in general), too bad, I'm sure if he were still alive, Stevens would have done that topic justice.
Honestly, you are never going to find a way to shortcut you out of this situation. No one answer is going to be perfect and get you from A to B if your already at C. I had a similar experience with programming and web development.
I studied computer networking all my adult life and never thought I would be developing as my career at the moment. It is the burden of knowing too much and not having a clear direction. What I needed was more confidence in my skills which can only really develop over the years through experience.
You say you already know a lot of Linux and Bash concepts. CD/CI pipelines try to abstract a lot of OS related involvement since your code doesn’t need to know how low level kernel operations are happening.
What it sounds like you need is knowledge of OS concepts, not just Linux concepts. I say this because every OS has its own way of doing the same thing one way or another.
For example virtual memory, if you understand the concept of virtual memory in any OS rather than a specific OS’s semantics regarding Virtual memory then I think you would be better off in the long run.
If I am wrong and you are the master of the Linux environment, I believe you just need to deep dive into development strategies and the core principles of CD/CI. Once you have a foundation it doesn’t really mater if you are a Jenkins expert or CircleCI expert, all that matters is if you have a foundation to fall back on.
Edit: if you wanted my two cents on material here are some books I recommend.
The Practice of System and Network Administration
Operating Systems Concepts
UNIX and Linux System Administration Handbook
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/
Books don't get more wind baggy than this.
If you ask me, Andrew Tanenbaum books are AWESOME. Not cheap but this guy takes a good bottom to top approach, if you really want to understand networking down to the TCP/IP stack get this.
Computer Networks If I can offer you a shred of advice, understanding what is happening under the hood and the 'big picture' of network design becomes an easy concept.
On the flipside - here is a good Top Down approach to networking Computer Networking Top-Down
Best of luck with your studies!
A good start would be to study for any standard certifications in the field, since they cover the basic topics and hey, why not get certified while you are at it? Comptia's N+, Cisco's CCENT or CWNP's CWTS cover the fundamentals of networking.
On the other hand, you could just go through free online lectures like this one on youtube or this one offered by MIT. Of course, there's always the good old-fashioned way to learn- borrow any standard textbook like Tanenbaum.
Also, the second edition of this classic book is coming out on November http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313
I would recommend this book. It was just recently updated and is an excellent source for many of the fundamentals for networking.
http://www.amazon.com/gp/product/0321336313/ref=oh_o00_s00_i00_details
Andrei's book on D: "The D Programming Language" would be another great read whether you are looking into the D language or not, it is a great read for general programming design IMHO :-)
I found The D Programming Language to be very enjoyable, and it is basically the D bible right now.
The main D website is now dlang.org. Most (all?) of the links on the sidebar are up-to-date in my experience. Check out the Articles section of the sidebar especially. The library reference is autogenerated from the release source code, so it's up-to-date.
If you want help from actual people, there is a lot of action on D.learn on forum.dlang.org.
There's also /r/d_language. It doesn't seem as active as the D forums, but the D creators and many of the principle developers are redditors.
And of course, you can filter on D at Stack Overflow. Again, I've seen D developers on there answering questions, so don't be afraid to ask questions.
There's Andrei Alexandrescu's book, The Day Programming Language, which has been well received. Andrei is one of the language designers and joined Walter Bright pretty early in the process of designing D2, the current version of D.
I haven't read it (I prefer online documentation and forums), and I'm unfamiliar with the book you mentioned (I'm mostly familiar with K&R's C).
Anyway, hope this helps!
As far as recommended reading goes I would have a look at the practice of system and network administration (https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?ie=UTF8&amp;qid=1539629401&amp;sr=8-1&amp;keywords=practice+of+network+and+system) and The phoenix project. As far as technical courses, I'm assuming your role will be mostly strategic and managerial (unlike some of us in smaller companies where the IT Manager is also expected to be a technical lead) I would focus on the managerial side and surround yourself with technical experts.
'Best practice' is such a vague term that you're going to run into issues defining it in a meaningful way for your client's environment.
I'd look at generic guides (u/jhend28 mentions a good one) but also read up on specifics that apply to your environment. For example: best practice for a level 4 data center hosting financial data for banks etc. will not apply at all you a SME with two servers on premise that don't sell direct and hold no Top Secret data.
Have a read of The Practice of System and Network Administration: Volume 1 for a good starting place.
That is probably some of the craziest shit I've read in a while, and that's impressive, this being the internet and all.
EDIT: OP, to make a suggestion, the Linux Bible is a great resource for someone just starting out, and helps get you in the mindset of how Linux works when coming from other operating systems.
http://www.amazon.com/Linux-Bible-Christopher-Negus/dp/111821854X
This should be a good start.
I like the following meaty tomes:
AD:
https://www.amazon.com/Active-Directory-Designing-Deploying-Running/dp/1449320023/ref=sr_1_2?keywords=active+directory&qid=1568884370&s=gateway&sr=8-2
GP:
https://www.amazon.com/Group-Policy-Fundamentals-Security-Managed/dp/1119035589/ref=sr_1_1?keywords=group+policy&qid=1568884382&s=gateway&sr=8-1
This is your curriculum:
1 & 2 below are basically required reading in my CSIRT; 3 is optional, but advisable.
Next get yourself and/or your organization to participate in FIRST
Is this the one you mean? I am looking for some good books to read as I start to enter the work force.
https://www.amazon.ca/Practice-System-Network-Administration-3rd/dp/0321919165
A few thoughts. Hopefully at least one of them will be helpful.
I could go on, but most of the above is already in the two books I listed and I'd just be riffing on a theme. I'll leave you with this:
Tl;dr Python works, it's super popular and you'll be able to transfer most things you learn there to other languages.
Some examples you might run into:Caprica - ACL descriptive language (https://github.com/google/capirca)
You should understand caprica as a tool, and why you might want to use it (not deeply, just enough to see why you might use things like rule/subnet minimization etc.)
Rancid - Backup automation (uses *cringe* Expect http://www.shrubbery.net/rancid/) look at oxidize instead but rancid was the standard for years (over a decade?)Nmap - Lua scripting (you may need to write custom scanners https://nmap.org/book/man-nse.html)
Network Security Monitoring - This is more a discipline you'll probably need to understand, and even while it's a little dated I would suggest the no starch press book on the practice. Understanding where you should use a simple beam splitter or an active tap etc is important too, but you've probably had plenty of experience there. I wouldn't focus on too many different tools but you can certainly test things like Bro/Surricata out on your personal network with pretty minimal modifications to understand the concept.--
Scripting will help you do really basic things like be able to take a single SNMP walk command for a single OID and run it against a csv/txt file list of assets. It helps give you the fundamentals to fix/change the tools you'll have to use as a network security engineer.
Understanding Certs is super important, so knowing some basic things: how to extract a certificate/private key in any format you need it. How to verify a certificate is valid with a copy of the Certificate Authority, how to verify a certificate is still valid. What's the minimum required process to renew a certificate etc.
Also, you'll probably have to deal with break/inspect (*transparent* tls proxies) so learning and understanding how certificate (x.509) based systems work even lends itself there. Unfortunately scripting tools for that kinda thing suck/are missing pieces so basically I would say learn how to use openssl really well/make yourself some good bookmarks for references.
Practice of Network Security Monitoring is the best place to start.
https://www.amazon.com/Computer-Networking-Top-Down-Approach-6th/dp/0132856204
When I was in school we used this in our networks class (but it looks like there's a 7th edition out now), and I thought it was a good book. Very detailed and explained things in a way that actually made sense (to me).
The TCP/IP Guide - It's a little dated these days and barely touches IPv6, but it's a good, quick look at a lot of the glue services that you will eventually need to understand and troubleshoot: DNS, SNMP, NTP, etc.
TCP/IP Illustrated, VOL 1 - Here's where we get into the nitty gritty. This shows you what is happening in those packets that cross the wire. Invaluable if you go onto doing Performance Engineering functions later on, but still good.
NMAP Network Scanning - NMAP is a godsend if you don't have remote login rights but you need to see what's happening on the far end of the connection.
Wireshark Network Analysis - Most useful tool in your toolbox, IF you can use it, for proving the negative to your customers. At some point you're going to be faced with an angry mob in Dockers and Polos who want to know "WHY MY THING NOT WORK?". This is the book that will let you point to their box and go "Well, as soon as the far side sends a SYN/ACK your box sends a FIN and kills the connection."
Learning the bash shell - You're a network engineer, you're going to be using Linux boxes as jump boxes for the rest of your life. Shell scripting will let you write up handy little tools to make your life easier. Boss wants to blackhole China at the edge? Write a quick script to pull all of the CN netblocks from the free FTP server APNIC owns, chop it up in sed and AWK, throw a little regex in for seasoning and you're done. And when he comes back in 30 days for an updated list? Boom, it's done even faster.
The vendor specific books are nice, but I can't tell you how many network engineers I've run across who couldn't tell me how DNS worked or how a three way handshake worked or couldn't write a simple script in Bash to bang out 300 port configs in 30 seconds. There are a shit ton of paper CCIEs out there, but those books up there will make you stand out.
Hai!
Also, https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=pd_sbs_14_t_0?_encoding=UTF8&amp;psc=1&amp;refRID=0T9DJZC3VHQTS8MFT7WT
Thanks for linking this, I hadn't seen it yet. As a Windows admin looking to get into Linux, this seems interesting.
Also, for your automation, I'd recommend Automate the Boring Stuff with Python, if you haven't read it already. It can also be found for free here: Automate the Boring Stuff.
I'll add another plug for The Practice of System and Network Information, even if you have a good feel for the philosophical part of the job.
Probably the best book out there for system administration.
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=dp_ob_title_bk
Read Limoncelli's book: The Practice of System and Network Administration: Volume 1. That would give you a good place to start and learn best practices.
&#x200B;
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_4?s=books&ie=UTF8&qid=1537969093&sr=1-4&keywords=The+Practice+of+System+and+Network+Administration&dpID=5139XV0QYsL&preST=_SX218_BO1,204,203,200_QL40_&dpSrc=srch
&#x200B;
For reference, /u/fatgypsythief is referring to this.
Read these:
http://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Professional/dp/0201633469
http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958
I learnt a lot from Tanenbaum's Computer Networks, though it's not exactly light reading.
If you're going to be/are a Cisco shop*, then a CCENT/CCNA would be really useful (and it also gets you a discount on equipment, but it never beats eBay) - though it's not a bad certification even if you're not a Cisco shop. If you do take that track, I'd recommend CBTNuggets/Jeremy Cioara's videos, though they're not cheap (and I can't think of any way to see videos without paying for them ;) ). By that same token, ASP/APP if you're going to be an HP shop*, JNCIE/JNCIP if Juniper*, BCNE if Foundry/Brocade*, or if you're going to be a Linux/BSD shop*, start tinkering (which is probably the best way to learn anyway).
I've never done or met anyone who's done Network+, though my experience is that CompTIA's certifications aren't held in high esteem.
* Once you start needing managed/enterprise gear, it's generally a good idea to try and keep all their gear from one supplier where possible, because some features don't work between competing products, it makes it easier for the employer to find employees, and it generally makes life easier. For unmanaged/consumer gear, you can mix and match all you want, though most sys/net-admins tend to develop biases for one vendor or another.
Computer Networks by Andrew S. Tanenbaum
Link: http://www.amazon.com/Computer-Networks-Edition-Andrew-Tanenbaum/dp/0132126958
http://www.amazon.com/Computer-Networks-Edition-Andrew-Tanenbaum/dp/0132126958/ref=pd_sim_b_2?ie=UTF8&amp;refRID=1BZMSRCH40428ZF99CRS
I don't get how you're in a masters program in cybersec without knowing how to code...
Anyway, if you are leaning towards pentesting/networks, https://www.amazon.ca/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441 as well as black hat python/violent python are what you want to start off, as well as a good book on networking book: https://www.amazon.ca/Computer-Networking-Top-Down-Approach-6th/dp/0132856204.
I'm actually confused about what the content of an msc program could be in cybersec if you don't already know how to code.
This is a great list, thank you very much.
I also happened to decide to study networking but for a bit deeper, my choice was this book.
https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149
This is a complete networking essentials, for grads, phDs, masters.
Is also has a helper site with video notes and animations
https://wps.pearsoned.com/ecs_kurose_compnetw_6/216/55463/14198700.cw/index.html
Nand to Tetris (coursera)
the first half of the book is free. You read a chapter then you write programs that simulate hardware modules (like memory, ALU, registers, etc). It's pretty insightful for giving you a more rich understanding of how computers work. You could benefit from just the first half the book. The second half focuses more on building assemblers, compilers, and then a java-like programming language. From there, it has you build a small operating system that can run programs like Tetris.
Code: The Hidden Language of Hardware and Software
This book is incredibly well written. It's intended for a casual audience and will guide the reader to understanding how a microcontroller works, from the ground up. It's not a text book, which makes it even more more impressive.
Computer Networking Top Down Approach
one of the best written textbook I've read. Very clear and concise language. This will give you a pretty good understanding of modern-day networking. I appreciated that book is filled to the brim of references to other books and academic papers for a more detailed look at subtopics.
Operating System Design
A great OS book. It actually shows you the C code used to design and code the Xinu operating system. It's written by a Purdue professor. It offers both a top-down look, but backs everything up with C code, which really solidifies understanding. The Xinu source code can be run on emulators or real hardware for you to tweak (and the book encourages that!)
Digital Design Computer Architecture
another good "build a computer from the ground up" book. The strength of this book is that it gives you more background into how real-life circuits are built (it uses VHDL and Verilog), and provides a nice chapter on transistor design overview. A lot less casual than the Code book, but easily digestible for someone who appreciates this stuff. It culminates into designing and describing a microarchitecture to implement a MIPS microcontroller. The diagrams used in this book are really nice.
https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149
This is the 7th edition, i have the 5th which is extremely valuable and precise in it's context. Built very good and easy to understand, but also VERY in-depth.
I used Computer Networking: A Top Down Approach [0]. The title pretty much sums it up, you start at the application layer and work your way down through each layer. I found this approach helpful since it started with something relatively familiar (app layer) and then digs down through the layers to find out how it's really working. For me, at least, this is preferable to starting on the bottom where you don't really have as much context for what's happening.
[0] https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149/ref=sr_1_2?ie=UTF8&amp;qid=1536784010&amp;sr=8-2&amp;keywords=networking+textbook
I'd be interested if there is something like what you're looking for out there. I don't think there is.
One of the things I've discovered over the years is how much of these "golden nuggets of networking history" are sprinkled about in various non-certification networking textbooks. They're generally not in certification-oriented books because there isn't enough room, but they are quite often found in textbooks that cover particular networking topics.
For example, one of my favorites is contained in Developing IP Multicast Networks. Beau Williamson writes:
> There’s an interesting story as to why only 23 bits worth of MAC address space was allocated for IP multicast. Back in the early 1990s, Steve Deering was bringing some of his research work on IP multicasting to fruition, and he wanted the IEEE to assign 16 consecutive Organizational Unique Identifiers (OUIs) for use as IP multicast MAC addresses. Because one OUI contains 24 bits worth of address space, 16 consecutive OUI’s would supply a full 28 bits worth of MAC address space and would permit a one-to-one mapping of Layer 3 IP multicast addresses to MAC addresses. Unfortunately, the going price for an OUI at the time was $1000 and Steve’s manager, the late Jon Postel, was unable to justify the $16,000 necessary to purchase the full 28 bits worth of MAC addresses. Instead, Jon was willing to spend $1000 to purchase one OUI out of his budget and give half of the addresses (23 bits worth) to Steve for use in his IP multicast research.
And that's why we have a 32:1 overlap of multicast IP addresses to multicast MAC addresses today :-)
There are tons of these kinds of things sprinkled about in Radia Perlman's Interconnections book as well.
http://www.amazon.com/Internetworking-TCP-IP-Vol-5th/dp/0131876716/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1351099800&amp;sr=1-1&amp;keywords=Internetworking+with+TCP%2FIP
(think theres a newer edition, thats the one i have however)
One of (if not) the best book ive ever read on networking, I read it whilst i was studing CCNP and have read it another couple of times whilst studying for CCIE, also this;
http://www.amazon.com/Interconnections-Bridges-Switches-Internetworking-Protocols/dp/0201634481/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1351099354&amp;sr=1-1&amp;keywords=Interconnections%3A+Bridges%2C+Routers%2C+Switches%2C+and+Internetworking+Protocols
http://www.amazon.com/Network-Warrior-Gary-Donahue/dp/1449387861
http://www.amazon.com/Wireshark-Network-Analysis-Second-Certified/dp/1893939944/
http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313/
I come from a similar background, but now I live almost completely in the networking domain. If you’re interested in learning about the various technologies from the perspective of a non-operator expert, I recommend TCP/IP Illustrated: The Protocols.
If you want to learn how to route packets from the perspective of a (albeit senior) network administrator, I recommend Routing TCP/IP Volume 1 and Routing TCP/IP Volume 2.
Beyond the excellent and thorough descriptions of the various technologies (with context), they also provide direct references to the RFCs and white papers wherein the technologies were first published. Using these three texts as a starting point, you can delve as deep as your interest carries you. I believe all three books are available through Safari Books.
If you learn best through video and verbal instruction, I recommend INE. It’s pricy but worth it.
Andrei's book is just great, covering language design considerations as well:
http://www.amazon.com/D-Programming-Language-Andrei-Alexandrescu/dp/0321635361
Also, I don't know about good :) but I am translating my Turkish book on D into English, which is geared towards the novice programmer:
http://ddili.org/ders/d.en/index.html
Sounds like you're asking for a link to https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=asap_bc?ie=UTF8
First, read our Wiki. It is very thorough and answers a lot of these common questions such as
day to day? The Practice of System and Network Administration
And the topical reference books listed below.
Books to help in shaping a sysadmin? The above &:
The Phoenix Project
Time Management for System Administrators
Topical Books I see mentioned often and have been very helpful to me:
Powershell in a month of lunches
Learn Python the hard way
Unix and Linux System Administration Handbook
Windows Server 2016: Inside Out
Group Policy
AbsoluteBSD
FreeBSD mastery:ZFS
CCNA
RHCSA/RHCE
Pro Puppet
SSH Mastery
On my docket:
FreeBSD Mastery: Advanced ZFS
Michael W. Lucas and Thomas Limoncelli are very good sysadmin writers, you can't go wrong with a topic they have chosen to write about.
Most of the *nix stuff assumes a baseline knowledge of how to use a unix-based system. I learned as I went but did pick up an old copy of Unix Visual Quickstart Guide not too long ago at a used books sale, which seems like a good starting place for someone overwhelmed with sitting at a terminal and being productive.
I notice I don't have any Virtualization books, perhaps someone else can fill in good books. Most of my knowledge regarding virtualization and network storage has been a mix of official docs, video training, and poking at it. Seems innate but it isn't.
Even earlier versions would be a very good read despite the DevOps hype, but the 3rd (new) version includes best DevOps practices even without having any devs.
must read the [third edition](
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1520930004&amp;sr=1-1&amp;keywords=the+practice+of+system+and+network+administration&amp;dpID=5139XV0QYsL&amp;preST=_SX218_BO1,204,203,200_QL40_&amp;dpSrc=srch) instead of the second
Learn to program. Edx/Harvardx CS50x gets pretty good reviews.
Learn to and make a habit of writing extensive technical documentation on everything you do.
Read this book. https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?ie=UTF8&amp;qid=1480705767&amp;sr=8-1&amp;keywords=The+Practice+of+System
Apply everything you learn to the current systems you work with
https://www.amazon.co.uk/gp/product/0321919165/
If you wait a few weeks, you can pick up the new edition of this book:
https://www.amazon.com/gp/product/0321919165/
If you think "there is nothing to do", you are probably in "don't know what you don't know" territory, which is fine. They key is to first start discovering what you don't know, then you can start taking steps to resolve it by learning.
As you learn, you will realized that there is far more that you don't know than you though, and the side effect will be that you feel dumber and dumber, but you will actually be improving at your job.
What do the PowerShell scripts you want to rewrite in Python do? I find the idea of a "commandlet like Python script" misguided and confused. PowerShell is still very much an administrative tool geared toward Microsoft systems. At this point in time I wouldn't consider it a general purpose scripting language like Python. No one is writing webapps with a MVC framework, e.g. Django, with PowerShell. And I doubt anyone ever will, despite all appearances from MS that they're trying to turn it into a general purpose language with PS Core. If your scripts are doing a lot of administrative things with AD, etc. then you're likely not going to have much success porting them to Python. I would question your sanity if you really wanted to do that.
You also need to spend some time groking Linux and Unix to get the most out of Python. Remember that it's a product of that environment and very much follows those conventions. So if you're looking to parse arguments then you should look at argparse. You should also think about what the syntactic sugar of a switch statement is doing, and realize you can do the same thing with a hashtable/dictionary.
If you're just interested in doing administrative things with Python then take a look at this book: Python for Unix and Linux System Administration. But realize the Python ecosystem is about a billion and one times larger than PowerShell's and covers everything from web development to machine learning.
Try out some of these:
Books:
The linux command line
The Linux Bible
UNIX and Linux System Administration Handbook
&#x200B;
Where to ask questions and find information:
https://askubuntu.com/
https://www.linuxquestions.org/
https://www.linux.org/
https://www.linux.com/forum
https://stackoverflow.com/
https://unix.stackexchange.com/
https://ubuntuforums.org/
https://wiki.archlinux.org/
&#x200B;
How to ask questions for maximum help:
https://unix.stackexchange.com/help/how-to-ask
https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
&#x200B;
Tutorials:
Linux Journey
This dude called Ryan is pretty cool
This guy Dave has a really nice voice on youtube
Linux Foundation
linuxcommand
linuxsurvival
Engineer Man. thank you to u/dk1998 for the reminder
Bash Guide by Greg Wooledge
&#x200B;
Linux learning games:
Terminus
wargames
&#x200B;
Subreddits you might want to get into at some stage, or subscribe to, I just made a big multireddit that I use when I want to focus my redditing on positive use of my time:
&#x200B;
Some distros:
Ubuntu
RHEL
ArchLinux
centos
openSUSE
fedora
Linux Mint
Manjaro
A couple of cool resources that you might want to look at:
sysadmin.it-landscape.info
Awesome Sysadmin links, a popular set of curated links
I've seen other users on this sub saying that the LPI certs are either next to worthless to nice to see someone have but not something that guarantees a job. Still, I'm working on getting the LPIC-1 regardless. It's a good refresher to help keep my skills sharp while I look for work (and fill in some gaps in my knowledge), it most definitely carries more weight in the industry than the Linux System Administration cert I got from my local community college, and well, it's relatively cheap. I've not much better to do at the moment, so it can't hurt.
I've seen it said here (and heard from others in the business) that the RHEL cert is definitely the cert to get if you're interested in being a system administrator, but that it's also cert that's geared towards someone that's already got some hands-on experience in an enterprise setting and not really for beginners. I've also seen it said by some on this subreddit that, like the LPI certs, the RHEL cert is nice to see but they still don't care if you have it. I guess it's up to you if you want to plunge headfirst into it. Immersion seems to be the traditional Linux/open source way, but I say do what works for you--if you want to build up to it over time, then do that. If not, grab a VM and CentOS and have at.
Really, if it's one thing I've learned while going to school and looking for work, it's that requirements game is pretty much a crapshoot. Some companies want those certs and degrees, some don't care and want experience, some want a mix of those and experience, and some will only care if someone in the company knows/likes you (and even then it still might not happen for you). I say, grab the LPIC (which as /u/sudoatx said, it's actually three industry certs now) while volunteering somewhere (I'm getting a volunteership set up right now with my college's IT department, they've got some Linux boxes jammed away in there) to get the best of both worlds.
As for studying, the LPI website has links to free study materials geared specifically to prep you for their test. That doorstop /u/mynamewastakenagain mentioned is definitely really good, I have it on extended loan from my college library (working for them has it's perks ;)). I've also found the Linux Bible to be quite good, although I don't know of it's reputation in these parts.
The textbook for the class I took absolutely sucked. I bought Mastering VSphere 6 ( Mastering VMware vSphere 6 https://www.amazon.com/dp/1118925157/ref=cm_sw_r_cp_tai_UUXFAbVRY5J9X ) and it was perfect for me. It was a lifesaver when I was setting up my home network and I keep it on my shelf at work. Strongly recommend.
Can confirm. I would also recommend some additional reading. Something like https://www.amazon.co.uk/Mastering-VMware-vSphere-Nick-Marshall/dp/1118925157/ref=sr_1_1?ie=UTF8&amp;qid=1464096815&amp;sr=8-1&amp;keywords=mastering+vsphere+6 will be a good start.
Get Mastering vSphere 6
https://www.amazon.com/Mastering-VMware-vSphere-Nick-Marshall/dp/1118925157
https://www.amazon.com/Group-Policy-Fundamentals-Security-Managed/dp/1119035589
This is the definitive book on Group Policy in the enterprise. Read this book, now in its 3rd Edition, do the exercises and labs an you will surprise a lot of folks when the Group Policy issues come up. It is not just about knowing how Group Policy works, but how you can use it. It is updated for Windows 10 and WinSrv 2016.
Udemy: https://www.udemy.com/share/101XwqAkcZc1ZWRXQ=/
Amazon: https://www.amazon.com/dp/1491931256/ref=cm_sw_r_other_apa_i_yLdZDb73E1ZT0
https://www.amazon.com/End-End-QoS-Network-Design/dp/1587143690
I'd like to preface this by saying that I am certainly not the world's greatest security expert and that there are many people who are more qualified to speak to this matter. Hopefully some of them will see your post and chime in.
In my experience the less complex the product is, the easier it is to both maintain and secure. Therefore, knowing what you're building and how to build it gives you much better control over the security of it. Unless you're apart of an extremely tight-knit team that includes your SysOps and DevOps people or you're developing the product and the product's host environment by yourself, then there will always be aspects of security outside of your control. However, putting time and effort into the security of the product itself is typically a rewarding investment.
Books:
This book is focused on introducing security considerations into the phases of the SDLC. The information in this book is a bit more advanced than Security Software (included below) but not inaccessible to a beginner. Understanding architectural risk analysis is a valuable skill in any tech environment.
I would say this book is a must-have if you develop any sort of Java web app or API. The authors manage to cover a lot of territory in a very understandable format.
Another book that is primarily aimed at introducing security into each phase of the SDLC. When I first started working in software development I found it extremely helpful at convincing some "old guard" types why red teaming products is extremely valuable. You may want to read this before reading Threat Modeling.
Networking is definitely not my strongest skill but this book breaks down some concepts of network monitoring and threat detection in ways that are easy to understand.
the tao of network security monitoring explains a framework for stitching together different pieces of network security data into a process for investigation (the follow-up is also good).
yes, the thing you want is called 'full packet', and yes, it usually involves just sniffing, saving, and indexing all traffic at your network ingress/egress. there's some good open source frameworks like moloch for doing that, or if you've got money kicking around, something like solera or netwitness will do the trick nicely.
This is actually the model they use in this book, which I highly recommend.
I hope Tom Limoncelli doesn't mind me quoting from his book, but there's a brief section from The Practice of System and Network Administration about this:
Moving to/Opening a New Building
Limoncelli, Thomas A.; Christina J. Hogan; Strata R. Chalup (2007-07-05). The Practice of System and Network Administration (2nd Edition) (pp. 5-6). Pearson Education. Kindle Edition.
http://www.amazon.com/dp/B004JLMUJ0 for the lazy
Did you get that old edition or the latest 3rd edition with it's cloud admin partner?
Check out "The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition)" by Thomas Limoncelli.
https://www.amazon.com/dp/0321919165
I'm also pretty new to this job, and this book has been really helpful in better understanding all that we get to do.
I am in a similar boat as OP and also found the book you recommended, so just wanted to add that there is a new edition coming very soon, the one you linked is from 2007.
https://www.amazon.com/Practice-System-Network-Administration-3rd/dp/0321919165
https://www.amazon.co.uk/gp/product/0321919165/ref=oh_aui_detailpage_o02_s00?ie=UTF8&amp;psc=1 deals with a lot of issues, among them support/helpdesk/people stuff.
I can only highly recommend the second book/link as I have not fully read the other two. https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124 is a good one as well. Outside of that, here is the advice that I would give to someone in your position.
You as a Project Manager and a QA have sole responsibility as to what your customer will see. You are the gatekeeper for software good or bad to make it to the public's hands. This is the key and the only thing you really need to keep in mind. Everything else is just fluff and suggestions.
What you decide for #1, you can start to form a set of product requirements or statements of what the product is supposed to do. For example : "I expect the login form to validate username and password, and take you to a dashboard"
Keep track of these (excel or if you want to spend some money, a test case management system), and they will evolve into test cases, that you can use for your QA cycle. This will be 75% of the work. A Traceability matrix can be generated from reqs and test cases, and can be useful in checking things off.
Keep in mind that while Agile is vastly popular, it's not the only SDLC you can follow. You may opt for waterfall style QA cycles instead with a sprint dedicated towards regression or exporatory testing. The ISTQB is the standardized test for QA, simply reading through their syllabus and the content that they have on their site will allow you to talk the language of other testers once you get to that level (https://www.istqb.org/).
&#x200B;
As for automation testing, it is never too early, but it is also never too late. If you want to think about automation testing early, start by trying to create Gherkin for your test cases and/or requirements. That will allow you to transition into using cucumber or specflow (depending on your technology stack) quickly, when you are ready for it.
My advice, although may be different, is to NOT FALL INTO A SDLC PATTERN JUST BECAUSE SOMEONE TOLD YOU TO. I've seen too many shops fail in QA because they are so engrained into following the SDLC pattern that the developers are using. If you don't continue to switch things up, then you will get to a point where you're simply looking for and finding the same issues over and over again. I've been in agile heavy shops where I've told the QA team to forget what they know of agile, and go different patterns for their QA cycles, and then switch things around the next release. Keeping things fresh and continuously learning what is the trend in QA will help keep your product fresh, and your developers on their toes. Keep trying new things, and relying on what works to back up your QA work as you go. Just keep to the time schedule and the promised deadlines.
&#x200B;
My final advice for anyone working in a QA field is to ask questions. Ask so many questions that your developers start to label you as someone that needs to be scheduled to have a conversation with. If you don't understand anything, ask, and make sure that you understand why something is working the way something is before you let it pass in your testing. If something doesn't make sense, falter in writing too many defects and asking questions about why those defects are not defects in bug scrub or when working with your developers. May seem like I'm telling you to be annoying, which I probably am, but after a couple cycles of this, you'll naturally fall into understanding core concepts of your software, how it works, what you expect it to do in the field, and common misunderstandings from your customers about what it does and how it should work.
&#x200B;
I am usually fairly available, so if you have questions, feel free to pm me. And above all, best of luck with the company!
Presumably you know how to code. . . the question is, do you know how to test? Not that knowing how to test is rocket science but I'd say the first thing to embrace is that anything and everything can just break. When you write code, it's easy to focus on the "happy path".
As you might expect, there are tons of resources about testing online. . . including this subreddit and r/QualityAssurance.
Other resources I'd recommend:
The reviews of this book on the given link and Amazon are discouraging. Have you read this book yourself? If so how much previous Python knowledge did you have? Other languages? I'm pretty new to Python myself and have also been looking for something to help me use it in Linux administration. The Red Hat link from Agmenor is pretty good, and probably enough. Need to finish my beginner book first. http://www.amazon.com/Starting-Python-Edition-Gaddis-Series/dp/0132576376
http://www.amazon.com/Python-Unix-Linux-System-Administration/dp/0596515820
You'll need a good book and a good community (university? Linux User Group in your area?).
Don't try to learn from crappy outdated tutorials. Don't try to learn it all on your own. Choose a distribution carefully and be loyal to it for a while -- no novelty-seeking, optimistic "This distro will be so much better" distro-switching. Don't get obsessed with it -- it's a set of tools, not a way of life (hopefully).
I highly recommended: www.amazon.co.uk/Linux-Bible-Christopher-Negus/dp/111821854X/
Thanks for the links and ideas too, I'm hoping to get my RHCSA in the next few months also. Here's what I've been doing:
http://www.globalknowledge.com/training/course.asp?pageid=9&amp;courseid=15678&amp;country=United+States
Very RHEL/CentOS focused, lots of emphasis on RHCSA/RHCSE. It's more focused on RHEL 6, but if I'm remembering right there is some discussion of sysvinit vs systemd and how to deal with both. Good read overall I think for the future too.
I suck at taking tests, but I've been experimenting at home and creating some screwed up scenarios, and I'm getting decent enough to work out of messes. I feel like I'm learning something at least.
The "VCP Bible" is called Mastering vSphere (insert version # here) and can be found here. The Mastering series is the definitive guides to VMware. If you want to learn it, or study for the VCP, that has it all. There is also tons of courses on Pluralsight.
There is a Mastering vSphere 6 book Can confirm, I used the 5.5 version to get my VCP-DCV. Excellent reference book. Also agree the ICM class is so very basic that if you've installed a homelab, chances are you won't learn much new. When I took it I'd deployed several clusters already and didn't take much away.
This book on Group Policy: https://www.amazon.com/Group-Policy-Fundamentals-Security-Managed/dp/1119035589/ref=sr_1_2?ie=UTF8&amp;qid=1539909607&amp;sr=8-2&amp;keywords=group+policy
I also second setting up a home lab. It isn't actually that difficult to set up a domain controller and some client VMs, and there is no better way to gain practical knowledge than by doing.
As for the MCSA, definitely start with 70-698 and not 70-697 if you are going to be doing on premise opposed to cloud (Azure) AD.
Jeremy Moskowitz's book (and training) are excellent if you're looking for an in-depth resource.
http://www.amazon.com/Group-Policy-Fundamentals-Security-Managed/dp/1119035589/
Nice congrats!
Right now my plans are to not study anything for a while. But after that I am going to study more Python and this:
https://www.amazon.com/Network-Programmability-Automation-Next-Generation-Engineer-dp-1491931256/dp/1491931256/ref=mt_paperback?_encoding=UTF8&amp;me=&amp;qid=
I work a very expanded helpdesk roll at a small credit union, so boss wants me to start studying MCSA and ITIL and eventually Security+. So I have a path there.
I know everyone one likes to carry their momentum into the next cert, but I am just gonna slow down and enjoy some other aspects of my life for a while. I put a lot of stuff on hold as I studied, so I am looking to get a better balance in my life.
https://www.amazon.com/Network-Programmability-Automation-Next-Generation-Engineer/dp/1491931256
I bought a copy of this book for my whole team.
Off the bat I know we look for candidates who know python or powershell. Knowing how to automate is extremely valuable. We've been giving this book to our network engineers, but I feel it could be helpful for sys admins as well.
https://www.amazon.com/Network-Programmability-Automation-Next-Generation-Engineer/dp/1491931256/ref=sr_1_3?ie=UTF8&amp;qid=1521053597&amp;sr=8-3&amp;keywords=network+automation
Also, LEARN and LOVE virtualization. If I can trust you to spin up a VM for something like a training or testing environment, I will hire you. The MCSA is still valuable as well. You're already on the right track for management because your holding a degree. Get your skills up some and you'll be making bank.
You sound like you are already at entry level dev level already. If you published the repos here we could provide additional insight.
The biggest thing you seem to have is the right attitude. You know there’s more to learn, that you don’t know all the right answers and you approach things of okay it is working how can I refactor the code to make it better. These are huge skills that we look for.
I second the recommendation of reading books. SOLID is a really important principle for hiring today and I think think is a good easy to understand introduction to it: https://www.amazon.com/Adaptive-Code-principles-Developer-Practices/dp/1509302581
Unfortunately a lot of places have that college degree requirement, so that will be an inhibitor but please don’t let that discourage you. Some of the best devs I have ever worked with didn’t have a college degree and honestly the best companies I have worked for were always willing to hire without a college degree.
What area of the world are you in?
https://www.amazon.com/gp/aw/d/1509302581/ref=dp_ob_neva_mobile
Best of the best
Edit: by mistake I pasted a link to the first edition. Now updated.
Yeah reading about design patterns is going to be a great help in moving forward. They will carry throughout most programming languages too, not just c#.
I just got a book that was recommended to me and I am really excited to read it, after I finish my current book. Check it out:
https://www.amazon.com/gp/aw/d/1509302581?psc=1&amp;ref=ppx_pop_mob_b_asin_title
The book "End to End QOS" was really quite helpful to me when I started doing campus QOS design. I have the 2004 edition, but it looks like there is a new edition out this year.
http://www.amazon.com/End---End-QoS-Network-Design/dp/1587143690/ref=sr_1_2?ie=UTF8&amp;qid=1371745187&amp;sr=8-2&amp;keywords=end+to+end+qos
I haven't read it but this is one book I've been considering since I'm also working on a QoS project in the coming months.
Yes, those are the two sections that I haven't done v4 recordings for yet. Multicast will be added in the near future as part of a larger multicast series I'm working on.
QoS hasn't changed from the SPv3 to SPv4 blueprints. Here they are side by side:
SPv3 Blueprint:
SPv4 Blueprint:
Beyond those QoS videos in the playlist, I would recommend to read the following:
Edit: Also, check out Packet Volume 7 No. 1, First Quarter 1995.. There's a great article on page 11 titled "Building Consistent Quality of Service into the Network". ;)
Got u fam!
https://www.amazon.com/End-End-QoS-Network-Design/dp/1587143690
"Practical Packet Analysis" is by far my favorite Wireshark book.
edit: I should probably mention the book was published in 2011, so some of the information is regarding older technology, but the book is still fantastic.
If you're looking for an intro that will get you doing hands-on stuff quickly, I definitely recommend "Practical Packet Analysis: Using Wireshark...". Only if you want something that's far from textbook-y and will give you some insight into doing casual sysadmin type stuff. Also, "Nmap Network Scanning" will get you doing some hands-on fun activities as well. Just pay attention to local laws before doing anything that might raise red flags.
everyone recommends TCP/IP illustrated, and I've still got that on my shelf and to-do list. Can't lose there.
Of the many good reads in your future, please consider this one:
http://www.amazon.com/gp/product/1593272669?keywords=practical%20packet%20analysis&amp;qid=1457992016&amp;ref_=sr_1_1&amp;sr=8-1
Security onion is amazing, I use it myself as a VM in a home esxi server with a cheap 5 port smart switch.
A few quick notes:
My suggestion is to get a cheap switch with port mirror capabilities, like the Mikrotik Routerboard 260gs. Get a wireless AP (or an old router which has AP only mode), and plug this into your switch. Plug your actual router (the one doing the NAT) into the switch, and mirror these to a port that is connected to the security onion box.
That way will get you both ethernet and WiFi traffic. If you have any questions about running security onion in a home setting, feel free to send me a PM.
Thanks I'll start with that. Also what's your guys opinion on the tanenbaum's book? https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742
I think in that case you're better off finding a book somewhere. Tanenbaum's "Computer Networks" book is one that I enjoyed reading a lot (even the outdated stuff like Token Ring networks). It goes really deep into how networks work.
I have heard a lot of great reviews of Computer Networks by Tanenbaum in terms of its ability to teach networking. Alternatively, you could get the 4th edition book a lot cheaper with the caveat that it is older and may not be completely up to date.
Computer Networks by Tanenbaum is the de facto standard for an introductory textbook on networking. Hard to beat.
Computer Networks A Top Down Approach, by Kurose and Ross. Amazon.
I did not understand the internet. I didn't think that was a big deal, but networking shows up a lot and understanding it has helped me out enormously. This book is excellent, too. It is extremely readable, almost colloquial. It covers the network stack in depth (application/transport/network/link/physical!) as well as other important topics like network security and networked algorithms and data structures. Stuff like distributed hash tables, routing algorithms, and even large scale data center design. Seriously, this book is amazing.
Plus, I was surprised at how many times I've been asked a networks question in interviews. That's not to be sneezed at.
What specifically? I'd suggest learning about networking in general. I.e. good place to start would be the OSI networking stack, learning about packets & how they organized, downloading and using wireshark to look at the packets going into and out of your machine.
This is the one I used, and it worked really well for me to get a good view of networking. If there's something you don't understand, I think you could google and find relevant tutorials/articles explaining the concepts there, though there's some obscure stuff that you don't need to fully understand (queuing theory) for a basic understanding.
Computer Networking: A Top-Down Approach by Kurose & Ross is pretty good.
I've read parts of that https://www.google.ch/url?sa=t&amp;source=web&amp;rct=j&amp;url=https://www.amazon.com/Computer-Networking-Top-Down-Approach-6th/dp/0132856204&amp;ved=0ahUKEwiRlIrF4sHUAhUCb1AKHVeeBvYQFghoMAs&amp;usg=AFQjCNFJEsWQ4VHsSGx9fcNpEt0Z2Wip_w&amp;sig2=bsLxWN2VX4CX_8HXPluczA book. It's really good and helps you get an overview of what's going on on the internet.
Since you are a student of Computer Science, am presuming you are already familiar with programming. So, your next step is mastering Operating Systems - Start by learning UNIX which is a multi-tasking cum multi-user operating system aimed to provide high level of security. (Source to learn UNIX : http://www.ee.surrey.ac.uk/Teaching/Unix/)
Next, Learn Networking concepts - Infact you should know Networking concepts in finer details because as a cybersecurity professional, you would either need to check vulnerabilities in a network or identify and exploit one. (Check this ebook for networking concepts).
In case you need more information, find here
Everybody probably has his favorite book. The book I had to study for my Networking class was Computer Networking: A TopDown Approach by Kurose and Ross.
Great book and very pedagogical. I read the Tanenbaum's book and my preference goes to the one I linked.
These are the best texts for each subject, IMO.
Algorithms & Data Structures
Operating Systems
[Networking] (https://www.amazon.com/Computer-Networking-Top-Down-Approach-6th/dp/0132856204/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1525873112&amp;sr=1-1&amp;keywords=computer+networking+a+top-down+approach+6th+edition)
Programming Language Theory
Theory of Computation
I looked at the FreeCodeCamp curriculum, it looks good for an entry level javascript developer, so since you already started it, you might as well finish it (since, like I said, everybody implicitly expects you to know at least one of python/js/perl as well as HTML+CSS).
2 hours per day is a bit too little IMO - but I understand that it's hard to find time when you have a demanding job and a family that needs time and attention. Just study as much as you can, 2h being the mininum (do keep in mind that CS students, your competition, will be studying at least 8h/day for at least 4 years with tons of homework and more advanced material). So you should probably focus on studying more in the weekends (just typing and thinking about this, I'm actually lucky I started when I was a kid, with all my bills paid for!)
Anyways. You should focus on getting a job first - do keep doing the FreeCodeCamp, as many hours in the day and weekends as you can. Explain to your significant other, if you haven't already done so, your plan - that you're studying hard to upgrade your career, that it might take some time away from them but it will pay off in the long run, etc. Ideally you should be studying at least 4h/day, so try to keep close to that, study more on weekends if necessary. Check this guy for reference on his plan and what he's studying (and note that he's studying full-time - a luxury, I know, but just to put your 2h/day into perspective). This guide is helpful too. Note that you don't need to know all that to get an entry-level development job, but keep that plan in mind for the long run (as you progress your career).
Once you finish the FreeCodeCamp, or even before (I would say, once you finish "Basic Algorithm Scripting"), try doing some local interviews if you can do it without jeopardizing your current job just to get a feel of how interviews work. You won't be trying to get a job (but hey, if you do, awesome), this is just to get your feet wet on interviewing (which is a skill in itself). Since you're not shooting to get a job right now, you won't be as nervous, which is the state of mind you want to be in. If you're relaxed you can talk better, think better, make jokes, be more presentable, which is great - this will put you in the right mood for your future interviews. Try finding people online that can do mock interviews with you in the area you will be focusing on (web/javascript/frontend initially).
Once you're past the basic HTML/CSS part and you start studying JavaScript, I suggest you look into Python as well at the same time. It is a very simple language, quick to learn, and will double your opportunities for employment. As you study both at the same time, you might notice that you like one or the other better - if that happens, focus more on the one you like better, this will accelerate your learning and get you ready for a job faster in your chosen language.
At one point you'll finish HTML/CSS and JavaScript+Python (finish as in be comfortable with them - you'll see that you'll still learn new things as years go by, it will take a few years for you to "master" them). After you're comfortable with JavaScript and Python (and hopefully gainfully employed in development), start studying that book (where you'll learn a GREAT deal about many important things, it will be a dense read, and you will come out of it knowing assembly and C) and then you can focus on algorithms and exercising your thinking with algorithmic puzzles and how computer networks work, operating systems and everything that is generally on this list.
Then after studying all that and with 2-4 years of experience under your belt (and still studying 4h/day), you can start thinking about the next level in your career and preparing for it (larger companies, mid to senior positions, etc) - add a couple more years of experience and you'll be ready to interview for large Valley companies (Google, Apple, FB, etc).
If you plan to self-study all the way through and never join an University, you can look into full-fledged CS courses online and follow that to get a complete theoretical background on CS (that all your colleagues will eventually have and expect of you, at some point in the future).
Internet is a very complex global network of networks. Internet security is a bit vague term, what you really are looking for is network security, but even before you go for understanding security you first need to understand how network communication works. First understand the basics.
Network communication is made possible by hardware and software stack. Electrical/telecom engineers take care of the hardware part, i-e how the data has to be multiplexed into signals (see Frequency division multiplexing, Time Division Multiplexing) and transmitted over through some medium and de-multiplexed again at the receiver end.
Software stack is an implementation of set of protocols/standards through which communication between processes, devices and networks is made possible, the famous one is TCP/IP stack. There is another conceptual networking model OSI model as well but TCP/IP is the most well known and widely implemented protocol stack. Make yourself familiar with the TCP/IP stack, you should grasp basics like how different layers of stack communicate with each other and how different protocols work together to make the magic of internet possible.
You should learn the HTTP request/response flow and then relate it to what you have learned so far.
When you are done with these, move towards more advance stuff. Network security involves understanding about cryptographic algorithms that includes symmetric (eg AES) and public key cryptography (RSA) and hashing algorithms (SHA, MD5 etc). Get an overview about these systems, how and why they are used. These cryptographic algorithms/concepts Cryptography is based on mathematics especially number theory but you don't need to worry about that at the moment. Abstract understanding is important before you get into more details.
Learn about how SSL works. Exploits work at almost all levels of protocol stack, starting from exploits in HTTP and TCP to lower level packet sniffing and Man in the middle attacks. Learn a front end web language i-e javascript and at least know about one server side scripting language, PHP is one of the easiest to learn.
I recommend Computer Networking: A top down Approach by Kurose, this book explains the complex concepts in a very intuitive language and is used as a text for undergraduate networks course throughout the world.
Computer Networking: A Top-Down Approach
Cryptography and Network Security: Principles and Practice
There is another very good book TCP/IP Protocol Suite by Behroz Forouzan but the text is very dense and detailed, and usually is taught at advanced undergraduate or graduate level networking courses.
Read good and famous security blogs and Keep learning with a lot of patience. Cheers!
Computer Networking : A Top Down Approach
Also check out CompTIA N+ materials
I don't know much about any other websites other than Coursera, so I don't know if there are any courses I'm missing on the other websites.
Security:
On Coursera, I highly recommend the
Cyber Security Specialization. It covers a varied approach to security from multiples perspective and a great start for anyone.
After that you will have to look around for the specific type of security you are interested in. You won't find a MOOC because it is probably too specialized.
If you want a more mathematically rigorous courseload in crypto, I would suggest doing both Crytography I and Lectures by Christof Paar
Networking:
Sadly I haven't come across a good networking course. My current suggestion is to read Computer Networking: A Top down approach. You should be able to find PDFs of 6th ed (don't tell anyone I said that) which is similar to the 7th ed except the last chapter.
After that, you should be comfortable enough, but if you want to dive in deeper, read CCNA and CCNP books for the specific part you want to get a good understanding of (I would suggest starting with CCNA R&S).
Get a copy of this
Radia Perlman's book here. It is fantastic to see the world in which all this stuff started from.
I never knew IS-IS had EIGHT levels.
Pick up a copy of TCP/IP Illustrated. Required reading for any Network Engineer who takes themselves seriously -
http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-Professional/dp/0321336313/ref=sr_1_1?ie=UTF8&amp;qid=1405969361&amp;sr=8-1&amp;keywords=tcp+illustrated+volume+1
Best advice I can give the OP is to read TCP/IP Illustrated. It filled in a lot of gaps of knowledge not picked up in vendor certs.
Yes, yes there is.
TCP/IP Illustrated:
https://www.amazon.com/dp/0321336313/
I agree with other comments in that you need to give us more details on the project criteria. That said I'll shoot two things at you. Perhaps you can look at TCP, impact latency, packetloss, etc has on overall throughput. Then you can do a study of WAN optimization technologies and recommend a particular approach for small, medium, large networks? An excellent book to get you started is (TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition))[http://www.amazon.com/dp/0321336313/]. The benefit here is you will get a deep understanding of the issues affecting network performance and things we can do to improve.
If you're on more of the computer science/programming spectrum, you can look at creating an automation framework for network configuration and changes. Every network change has the same basic steps:
In shops that don't have network automation, it seems that the most common root cause of incidents is human error. Either the procedure is theoretically flawed or the change itself was implemented incorrectly. Network automation can help with the latter. The features and functions of your framework is up to you. The benefit here is you get familiar with programmatically interfacing with network equipment using ssh, api's or snmp.
Plenty of advice over at /r/ccna I recommend Chris Bryants bootcamp CCNA course at Udemy he's concise and doesn't use packet tracer just the console in full screen to focus on the practical use of IOS. Chris's ICND2 section has more detail on WAN protocols than the Lammle Study Guide book and reddits /r/ccna has tips on what to read or refer to. No need to buy equipment there are router labs online you can ssh into just google.
Network faults tend to be associated with buggy applications or misconfigured devices causing network congestion, delays and packet loss. A highly recommended book to understanding the tcp/ip protocols is TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition by Kevin Fall and Richard Stevens) http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-Professional/dp/0321336313/ref=pd_bxgy_b_text_z.
A freebie from Bonaventure is this pdf http://www.saylor.org/site/wp-content/uploads/2012/02/Computer-Networking-Principles-Bonaventure-1-30-31-OTC1.pdf
For tcp/ip packet analysis learn from Hansang Bae he has advice from 20 years experience on how to correctly analyse and obtain clues from tcp handshakes,sequence numbers, acks and teardowns. For packet analysis he says if you don't take the time to learn the exchange of seq and ack you might as well be somewhere else flipping burgers. https://www.youtube.com/user/hansangb/videos
the bible
If you really want in-depth knowledge, I would go with TCP/IP Illustrated. It has recently been updated and pretty much covers the gamut of all things networking.
If that looks a little too daunting, you can go with a CCENT book (Lammle and Odom tend to be the best writers, IMO). It does cover Cisco products, but the concepts in it are primarily vendor neutral. Hope that helps.
I recommend Stevens' oeuvre starting with TCP/IP Illustrated (for the concepts) and UNIX Network Programming (for the C-level programming details):
https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551
https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313
Also, Beej's Guide to Network Programming (background and C-level programming details): http://beej.us/guide/bgnet/output/html/multipage/index.html
If you're doing web work, you might be interested in High Performance Browser Networking: https://hpbn.co/
TCP/IP Illustrated will cover some of it, but you might want to read the networking chapter(s) of a sysadmin book. I don't have a ready reference.
These don't cover load-balancing or CDN, although the other textbooks mentioned in the thread probably don't either, at least not in detail.
Not all of these are in our core training/ required knowledge, or related to our day to day functions as a university A/V department, but They are all available to my team for knowledge building and professional development. Additionally , and our job ladder includes Infocomm certifications, so the library is a little biased towards infocomm resources at the moment.
Books I use are
http://www.amazon.com/Master-Handbook-Acoustics-Alton-Everest/dp/0071603328)
just ordered digital video and hd
based on a recommendation in r/videoengineering
infocomm's audio and visual systems design, essentials of the av industry, av best practices, AV installation hand book
white papers/ online training from extron, JBL, Dalite, surgeX, bluejeanscable, and others. (out of the office and do not have the exact list and links with me
I as well went to school for Network Engineering and am working Entry-Level networking now. These are the books that have helped me so far.
Network Warrior
Network+
CCNA Library
TCP/IP Illustrated
I've read a few others, but these were my favorite ones. The Network+ book helped me obtain my Network+ Cert, then the CCNA Library helped me obtain my CCENT and CCNA. Great Books!
I would only recommend that Netowork+ book though if you plan on getting into Cisco stuff because the author is a Cisco guy and tends to start rambling about Cisco technologies that you will learn for the CCNA.
Umm, I think Python is a good language to start with. It's forgiving and low on boilerplate code. I haven't read it but Learn Python the Hard Way by Zed Shaw is supposed to be decent (and it's free online). I didn't like Learning Python published by O'Reilly. I'd just read reviews on Amazon if Learn Python the Hard Way isn't working for you. Whichever you end up with, I recommend typing all examples from the book into the computer by hand. Something about doing this really helps make things stick in your head. You'll also make the occasional typo and have to debug your program which is something we programmers spend more time doing than any of us care to admit.
I think it is important to try to think of something you want to make and have it in mind while you are learning the language. It can be any software but I recommend a video game. They are really good for this because you can just think up a simple concept or implement your own version of an existing game. Having a goal makes it so you are constantly solving the problems you will encounter while trying to reach that goal which is the most important part of programming (more so than learning the syntax of the language). This is actually the highest rated Python book on Amazon and is all about gamedev with Python.
After you've learned Python to the point where you are comfortable (no need to master it), learn other languages to grow as a programmer. Once you've gotten a couple languages under your belt it's actually really easy to learn even more languages (unless it's a very odd language like Haskell, Lisp, or Brainfuck). The problem solving skills you've acquired often work in any language and you learn some new techniques as you learn new languages.
> As for D, it does not even exist in real world.
It does. It just needs some good tools support.
For reference Python first appeared in 1991, but didn't really gain wide acceptance until well after 2000. Ruby first appeared in 1995, but didn't gain wide acceptance until RoR was open sourced in 2004.
D was first designed in 1999. It's starting to gain more and more acceptance -- Andrei Alexandrescu is writing a book on it. This is about the time languages really start gaining traction. We'll see what happens in the next few years.
D is starting to become more popular. It's graced the frontpage of /r/programming a bit recently. One recommended resource is the book written by one of the language's developers: The D Programming Language.
Senior Level Software Engineer Reading List
Read This First
Fundamentals
Development Theory
Philosophy of Programming
Mentality
Software Engineering Skill Sets
Design
History
Specialist Skills
DevOps Reading List
Time Management for System Administrators: Stop Working Late and Start Working Smart
The Practice of System and Network Administration, Second Edition
Windows Server 2008 R2 Unleashed
Windows Server 2016 Unleashed includes Content Update Program
The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services, Volume 2
The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT
Network Warrior: Everything You Need to Know That Wasn't on the CCNA Exam
3rd edition was just released.
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=asap_bc?ie=UTF8
I'm going to recommend a book: https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165
Read the first edition of this 20 years ago. Great book about doing the "job" of being a sysadmin. Nothing OS specific.
Also, learn a scripting language. You're not a real IT guy unless you know one. Python is my preference, but PowerShell is fine if you primarily work in a Windows environment.
If you are looking for stuff to do in your environment, this book will give you some pretty good pointers:
The Practice of System and Network Administration
The Visible Ops Handbook: Implementing ITIL in 4 Practical and Auditable Steps
The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition)
For us a Change is any change to the environment that isn't controlled by a separate process, like new employees, termination, etc.
If your not sure, it's a CM.
So I have the MCSE Mobility and I do not know if that alone will last.
Would rather say it depends on your skill. You can also become a sysadmin without a certificate as the others have already mentioned. The MCSE Mobility does not really go deeper into server landscapes like the MCSA Server 2016 does.
The topics to be covered is:
Deplyoment
Inunte
And SCCM with intune I think.
I chose Deployment because I already had experience.
This contains:
LTIDeployment (mdt)
ZT Deployment (sccm)
WDS
USTMIf you really want to go deeper I can recommend the following book
is also recommended here in the wiki.
https://www.amazon.com/Practice-System-Network-Administration-3rd/dp/0321919165/hope you get your sysdamin place :)
Or for cheap starters, this book with an overly long title:
The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition)
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?ie=UTF8&amp;qid=1501175669&amp;sr=8-1&amp;keywords=practice+of+system+and+network+administration
The Practice of System and Network Administration: Devops and Other Best Practices for Enterprise it
Also OneNote,
I'd recommend reading:
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&amp;psc=1&amp;refRID=QNAPT9P3GEA7NRR24K7X
Also read this book
https://www.amazon.com/dp/0321919165/ref=cm_sw_r_sms_awdb_t1_.OHYDb49VR92P
Learn the fundamentals before you touch any of the crap from a vendor.
Computer Networks by Andy Tanenbaum. Available from Amazon but you should buy a used copy on abebooks for < $10. A newer (e.g. 2002) edition is preferable.
Once you've read that feel free to pick up the trade-oriented certification guides that will teach you command line stuff.
Also, put Linux on an old computer or two. Don't spend more than $100, any old junk will do. Play around with the network tools.
Good luck!
Computer Networks by Tanenbaum & Wetherall
Μάλιστα, δηλαδή για εσένα Internet = hypertext; Θα έπρεπε να πεις ότι δεν έχεις τεχνική κατάρτιση ώστε να αναπαντούσα αναλόγως. Βέβαια η τελευταία σου πρόταση με κάνει να αμφιβάλω για το κατά πόσο μπορούμε να συνεννοηθούμε. Μπορείς να αναζητήσεις πληροφορίες από εδώ για παράδειγμα για το τι είναι το Internet, πότε, πού και γιατί αναπτύχθηκε και πώς λειτουργεί.
Υ.Γ.: Τα μάγουλά μου ήταν εντελώς στεγνά καθ' όλη τη διάρκεια της πληκτρολόγησης αυτού του μηνύματος.
I enjoyed reading Networks 5th edition by A. Tanenbaum. It's thorough and pricey, but very well written, witty and provides historical context.
Yes, ARPA was on X.25, but that was not the only communication protocol out there. The IP stack was built because the different networks used different protocols and the desire to communicate between them required a standardized one.
Yes, ARPANet, NSFNet, CSNET, and a slew of others were the roots of the internet, but there was NO internetworking going on before that. The internet was born when they started internetworking. Argue with Tanenbaum, not me.
Since I can't find the full text of his book, here's a wiki article citing it: https://en.wikipedia.org/wiki/History_of_the_Internet#Transition_towards_the_Internet
http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1377285254&amp;sr=1-1&amp;keywords=Computer+Networks
Have fun.
You must read Computer Networks. No excuse.
I'd check out these two books from the local library and read the first 2-3 chapters. It might contain more than what you need, but these are pretty well written books and don't assume a lot of previous knowledge.
http://www.amazon.com/Structured-Computer-Organization-5th-Edition/dp/0131485210
http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/ref=la_B000AQ1UBW_sp-atf_title_1_1?s=books&amp;ie=UTF8&amp;qid=1376126566&amp;sr=1-1
Or you could just check out your network settings and search for the terms that you encounter (IP address, DNS, DHCP, gateway, proxy, router, firewall)
For networking I would recommend:
Pretty much the standard for most cs networking courses. here
>https://www.amazon.com/Computer\-Networking\-Top\-Down\-Approach\-6th/dp/0132856204
We are using this book for our intro networking course. It is really good because they really break some complex concepts down with really good everyday analogies and explain everything in detail.
I would recommend this book as it gives a general overview of computer networks (aka "the Internet").
I haven't read it in years, but I remember The C Programming Language being very useful.
If you want to learn more about the low level details of how computers work in general, I own the following books and recommend them:
---
Computer Systems: A Programmers Perspective
Computer Organization and Embedded Systems
Hacking: The Art of Exploitation
Operating System Concepts Essentials
Computer Networking: A Top-Down Approach
Well you're not going to learn any programming without a computer. But just a book on computer systems or a book on networking will easily overflow 20 days and should be a very interesting read.
I recommend either this book on computer systems or this book on networking.
Nice, the terms "client-server" and "peer-to-peer" is the correct one to use. I learnt that from Computer Networking course at university. https://www.amazon.com/Computer-Networking-Top-Down-Approach-6th/dp/0132856204.
Popular "client-server" are Facebook, YouTube, etc, "peer-to-peer" is torrent.
Appreciate all the upvotes. Given no one has commented, I'm wondering if that means people think it's a cool idea but don't live in NYC? Would anyone be interested in doing this as a remote discussion group?
For the first book I'm thinking:
Computer Networking: A Top-Down Approach
With this self-paced 8 week course (lectures / exams / transcripts all available) https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/info
Let me know =)
I haven't read it yet but have been recommended this book (https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149/ref=sr_1_1?keywords=computer+networking&amp;qid=1562364382&amp;s=gateway&amp;sr=8-1) by some co-workers.
Looking for solutions manual of Computer Networking: A Top-Down Approach (7th Edition) in 7th edition only:
The solutions manual is easily available in 6th Edition, but I am looking for the 7th Edition Solutions Manual only. Willing to pay $5 PayPal. There seems to be a version here but I cannot access it, so perhaps someone else can.
Willing to pay $5 PayPal.
Thanks!
Best book: Computer Networking Top Down Approach: https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149/?pldnSite=1
It’s not Go specific but you need to start at the fundamentals.
> For those who prefer video lectures, Skiena generously provides his online. We also really like Tim Roughgarden’s course, available from Stanford’s MOOC platform Lagunita, or on Coursera. Whether you prefer Skiena’s or Roughgarden’s lecture style will be a matter of personal preference.
>
> For practice, our preferred approach is for students to solve problems on Leetcode. These tend to be interesting problems with decent accompanying solutions and discussions. They also help you test progress against questions that are commonly used in technical interviews at the more competitive software companies. We suggest solving around 100 random leetcode problems as part of your studies.
>
> Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics.
>
>
>
> [The Algorithm Design Manual](https://teachyourselfcs.com//skiena.jpg) [How to Solve It](https://teachyourselfcs.com//polya.jpg)> I have only one method that I recommend extensively—it’s called think before you write.
>
> — Richard Hamming
>
>
>
> ### Mathematics for Computer Science
>
> In some ways, computer science is an overgrown branch of applied mathematics. While many software engineers try—and to varying degrees succeed—at ignoring this, we encourage you to embrace it with direct study. Doing so successfully will give you an enormous competitive advantage over those who don’t.
>
> The most relevant area of math for CS is broadly called “discrete mathematics”, where “discrete” is the opposite of “continuous” and is loosely a collection of interesting applied math topics outside of calculus. Given the vague definition, it’s not meaningful to try to cover the entire breadth of “discrete mathematics”. A more realistic goal is to build a working understanding of logic, combinatorics and probability, set theory, graph theory, and a little of the number theory informing cryptography. Linear algebra is an additional worthwhile area of study, given its importance in computer graphics and machine learning.
>
> Our suggested starting point for discrete mathematics is the set of lecture notes by László Lovász. Professor Lovász did a good job of making the content approachable and intuitive, so this serves as a better starting point than more formal texts.
>
> For a more advanced treatment, we suggest Mathematics for Computer Science, the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available, and are our recommended video lectures for discrete math.
>
> For linear algebra, we suggest starting with the Essence of linear algebra video series, followed by Gilbert Strang’s book and video lectures.
>
>
>
> > If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
>
> — John von Neumann
>
>
>
> ### Operating Systems
>
> Operating System Concepts (the “Dinosaur book”) and Modern Operating Systems are the “classic” books on operating systems. Both have attracted criticism for their writing styles, and for being the 1000-page-long type of textbook that gets bits bolted onto it every few years to encourage purchasing of the “latest edition”.
>
> Operating Systems: Three Easy Pieces is a good alternative that’s freely available online. We particularly like the structure of the book and feel that the exercises are well worth doing.
>
> After OSTEP, we encourage you to explore the design decisions of specific operating systems, through “{OS name} Internals” style books such as Lion's commentary on Unix, The Design and Implementation of the FreeBSD Operating System, and Mac OS X Internals.
>
> A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. A great choice is xv6, a port of Unix V6 to ANSI C and x86 maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.
>
>
>
> [Operating Systems: Three Easy Pieces](https://teachyourselfcs.com//ostep.jpeg)
>
>
>
> ### Computer Networking
>
> Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking. Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols they’d been surrounded by for years.
>
> Our favorite book on the topic is Computer Networking: A Top-Down Approach. The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”, which they have generously provided online.
>
> For those who prefer video lectures, we suggest Stanford’s Introduction to Computer Networking course available on their MOOC platform Lagunita.
>
> The study of networking benefits more from projects than it does from small exercises. Some possible projects are: an HTTP server, a UDP-based chat app, a mini TCP stack, a proxy or load balancer, and a distributed hash table.
>
>
>
> > You can’t gaze in the crystal ball and see the future. What the Internet is going to be in the future is what society makes it.
>
> — Bob Kahn
>
> [Computer Networking: A Top-Down Approach](https://teachyourselfcs.com//top-down.jpg)
>
>
>
> ### Databases
>
> It takes more work to self-learn about database systems than it does with most other topics. It’s a relatively new (i.e. post 1970s) field of study with strong commercial incentives for ideas to stay behind closed doors. Additionally, many potentially excellent textbook authors have preferred to join or start companies instead.
>
> Given the circumstances, we encourage self-learners to generally avoid textbooks and start with the Spring 2015 recording of CS 186, Joe Hellerstein’s databases course at Berkeley, and to progress to reading papers after.
>
> One paper particularly worth mentioning for new students is “Architecture of a Database System”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study.
>
> Readings in Database Systems, better known as the databases “Red Book”, is a collection of papers compiled and edited by Peter Bailis, Joe Hellerstein and Michael Stonebreaker. For those who have progressed beyond the level of the CS 186 content, the Red Book should be your next stop.
>
> If you insist on using an introductory textbook, we suggest Database Management Systems by Ramakrishnan and Gehrke. For more advanced students, Jim Gray’s classic Transaction Processing: Concepts and Techniques is worthwhile, but we don’t encourage using this as a first resource.
>
> (continues in next comment)
Computer Networking: A Top-Down Approach
The book should be mostly sufficient for a modern approach to "end systems". The text content for SDN and NFV is fairly short, while the rest of the content digs pretty deep into the technical side of networking. If you get the newest version, it has been updated to accommodate newer concepts like SDN etc. Included with the book is access to online resources like Wireshark labs to reinforce learning.
Internetworking with TCP/IP by Comer. Three volumes, but volume I is sufficient for what you want.
http://www.amazon.com/Internetworking-TCP-Volume-One-Edition/dp/013608530X
It's very complicated.
Read: http://www.amazon.com/Internetworking-TCP-Volume-One-Edition/dp/013608530X
The author was one of the people involved with the creation of the internet.
Douglas Comer.
https://www.amazon.com/Internetworking-TCP-IP-One-6th/dp/013608530X
Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (2nd Edition)
Internetworking with TCP/IP Volume 1 (5th Edition)
TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition)
are the three 'vendor neutral' books that are recommended by INE as resources for all CCIE tracts.
Cisco CCIE book list contains the following:
Other Publications
Cisco Documentation
Configuring IPv6 for Cisco IOS (Edgar Parenti, Jr., Eric Knnip, Brian Browne, Syngress, ISBN# 1928994849)
Interconnections: Bridges & Routers, Second Edition (Perlman, Addison Wesley, ISBN# 0201634481)
"Internetworking Technology Overview" Available through Cisco Store under doc # DOC-785777
Internetworking with TCP/IP, Vol.1: Principles, Protocols, and Architecture (4th Edition)
(Comer, Prentice Hall, ISBN# 0130183806)
IPv6: Theory, Protocol, and Practice, 2nd Edition (Pete Loshin, Morgan Kaufmann, ISBN# 1558608109)
LAN Protocol Handbook (Miller, M&T Press, ISBN# 1558510990 )
Routing In the Internet (2nd Edition) (Huitema, Prentice Hall, ISBN# 0130226475)
TCP/IP Illustrated: Volumes 1, 2, and 3 (Stevens/Wright, Addison Wesley, ISBN# 0201633469, 020163354X, 0201634953)
edit1:
I own the first three and recommend them for vendor neutral network engineering books, with Perlman's book being the best switching book I've personally ever read.
edit2:
also I find wikipedia articles on computer related topics to be top shelf. I would recommend many of the references and papers referenced in the https://en.wikipedia.org/wiki/Network_theory
article.
This post is Cisco-centric.
Books:
http://www.amazon.com/Interconnections-Bridges-Switches-Internetworking-Protocols/dp/0201634481/ref=sr_1_1?ie=UTF8&amp;qid=1318854135&amp;sr=8-1
http://www.amazon.com/Cisco-Certified-Network-Associate-640-802/dp/0470901071/ref=sr_1_1?ie=UTF8&amp;qid=1318854213&amp;sr=8-1
Website of someone I know and I'm very impressed by:
http://www.stubarea.net/workbooks/cisco/ccna/
I took general networking courses in college as part of my major and honestly, I didn't learn much. If you want a good book on general networking, read this fantastic book by Radia Perlman:
Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (2nd Edition)
http://www.amazon.com/Interconnections-Bridges-Switches-Internetworking-Protocols/dp/0201634481/ref=sr_1_1?ie=UTF8&amp;qid=1321155480&amp;sr=8-1
If it's a college course where you can get a CCNA at the end, I'd recommend taking that.
Interconnections by Radia Perlman -- It has an L1/L2 focus, so you'll also need to read TCP/IP illustrated. After that, go for the CiscoPress CCNA books if you're taking the Cisco path.
Until you understand what a packet is and how it is constructed, wireshark isn't going to be of much use to you. A good resource for this is https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313/ref=dp_ob_title_bk To effectively get just what you need, you should also understand BPF: https://biot.com/capstats/bpf.html
I'm home now and able to consult my networking bible. The flow control implementation in ethernet (802.3x) does not use sliding window. All it uses is special pause frames that include a type (pause being the only relevant type) and a value for hold-off time, indicating how long the receiving device should wait before sending more data.
There's all kinds of theoretical flow control mechanisms, sliding window being one of them. Any layer 2 protocol can incorporate any mechanism, but the most used layer 2 protocol is 802.3 (i.e. "ethernet") and the flow control mechanism chosen there is not sliding window.
So the next question is: what layer 2 protocol are you talking about? Ethernet? Token Ring? Fiber Channel?
Digesting these 3 books on TCP/IP should give you a solid foundation.
http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313/ref=sr_1_2?ie=UTF8&amp;qid=1324241286&amp;sr=8-2
That depends on the book. Books on frameworks or specific languages are rarely useful -- I find that online reference manuals are the best for that.
However, books like TCP/IP Illustrated, The Art of Multiprocessor Programming, Compilers: Principles, techniques, and tools, An Introduction to Algorithms and similar tend to age pretty well, and I still find myself pulling them out and referring to them quite often.
You don't need the mumbo jumbo (but if you are genuinely interested, google or https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313/ref=sr_1_2)
Let's see what we can learn from the part you pasted.
The first few lines are just setting up the TCP connection. Kind of like two people saying, "hello, nice to meet you."
192.168.2.1.80 -&gt; 192.168.2.15.41580
192.168.2.15.41580 -&gt; 192.168.2.1.80
IE: 192.168.2.15 port 41580 is talking to 192.168.2.1 port 80
A bit later we see:
HTTP: GET top_conn.xml HTTP/1.1
So the client (192.168.2.15) is asking for http://192.168.2.1/top_conn.xml
The server replies:
HTTP: HTTP/1.0 200 Ok
Meaning the resource is available, and I presume the payload contains the data.
What we have learned:
Now you need to try connecting from outside your firewall via the port-forward.
First, you want to see packets successfully reaching the server from outside. If you don't see those, obviously nothing will work; there's something wrong with your firewall port-forwarding rule.
Second, you want to see packets successfully returned by the server. If you don't see those, something is wrong with the server.
Third, on the client (outside the firewall) you want to see the returned packets from the server. If you don't see those, your firewall is preventing packets from leaving your LAN (yes, firewalls can filter packets in only one direction, or any number of ways. It's their job, after all.)
Fourth, if packets are moving through your firewall in both directions successfully, but you still don't see the webpage you expect, it's probably something with your web server.
Hope this helps :D
I liked Steven's TCP/IP Illustrated Vol 1 (Addison-Wesley). It does a great job of breaking down exactly how the core protocols work at a very low level.
https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313
I think I learned from TCP illustrated protocols
It's a long read but it does pretty much cover everything
http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-Professional/dp/0321336313/ref=pd_sim_b_2?ie=UTF8&amp;refRID=16S5KZS7PFK44WNBSQ8T
http://www.amazon.com/Unix-Network-Programming-Volume-Networking/dp/0131411551
Have a look around at Stevens' other books and see if you can find something that suits.
If you are trying to shore up what you feel are knowledge gaps regarding networking - I am a fan of Chris Sanders practical packet analysis He has training that if fairly reasonable if you company does reimbursement His Site
Grab a book like TCP IP illustrated, which is very in depth, makes a great reference, and is vendor agnostic.
https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313
Overkill, but you'll want to know this IRL anyway. Esp if you ever have to explain a wireshark to a dev/server guy/guns pointed at 10 paces meeting with vendor
The Design of the UNIX Operating System
Advanced Programming in the UNIX Environment
Unix Network Programming, Volume 1: The Sockets Networking API
Sams Teach Yourself C for Linux Programming in 21 Days
edit: These aren't books but are GREAT online guides for sed and awk given by IBM
Common threads: Awk by example
Common threads: Sed by example
edit 2: Left this set of books out because I figured it had to have been posted already, i was wrong
TCP/IP Illustrated
>The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference.
Alone makes the tier worth it unless one goes dead tree for TCP/IP Illustrated, Volume 1 and 2.
Here are a couple books I have. The author of the first one was a teacher of mine a while back. She really knows her stuff. That book in particular is good for explaining all the protocols involved and how the packets are put together.
http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1382132562&amp;sr=1-1&amp;keywords=tcp+ip+illustrated
This second book is more general networking stuff. Still some really good reference material.
http://www.amazon.com/Illustrated-Network-Modern-Kaufmann-Networking/dp/0123745411/ref=sr_1_7?s=books&amp;ie=UTF8&amp;qid=1382132562&amp;sr=1-7&amp;keywords=tcp+ip+illustrated
And for operating system basics, this is a good all-rounder:
http://www.amazon.com/Operating-Concepts-Seventh-Abraham-Silberschatz/dp/0471694665/ref=sr_1_4?s=books&amp;ie=UTF8&amp;qid=1382132818&amp;sr=1-4&amp;keywords=operating+system+concepts
And for *nix because it is important and nobody thinks about it:
http://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1382132917&amp;sr=1-1&amp;keywords=Linux+System+administration
If you are interested in C++ but afraid of it, consider the D language. Unfortunately it arrived too late so it's not well-known.
If you already have a basic idea of how the machine works, I really have to recommend D as a powerful and, above all, sensible high-level language that isn't bound to a single platform the way C# is. You can do (almost) everything you can in C++, and more (the almost is multiple inheritance and binding to C++ libraries, but there are ways around both). If you're curious, check out Andrei's book or ask for more info in our IRC channel (irc://irc.freenode.net/#d).
lazyness?
Non-affiliate link to book.
edit: I regret that this comment lead to an off-topic sprawl.
> As for a Sysadmin Bible, i would recommend the book: The Practice of System and Network Administration: Devops and Other Best Practices for Enterprise it.
This is going to sound dumb, but I don't want to spend $50 for the same book. I have "The Practice of System and Network Administration: 2nd Edition", already:
http://www.barnesandnoble.com/p/practice-of-system-and-network-administration-thomas-a-limoncelli/1100835152/2675158637613?st=PLA&amp;sid=BNB_DRS_Marketplace+Shopping+Textbooks_00000000&amp;2sid=Google_&amp;sourceId=PLGoP20452&amp;k_clickid=3x20452
The DevOps one (3rd edition) is an entirely different book, right? Or is it just the 2nd edition with some DevOps stuff added to the end? Hard to tell when taking the Amazon page at face value.
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165
The 3rd edition was released a couple of months ago:
[Amazon] (https://smile.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?ie=UTF8&amp;qid=1484778994&amp;sr=8-1&amp;keywords=the+practice+of+system+and+network+administration)
Book One
https://www.amazon.com/Practice-System-Network-Administration-Enterprise/dp/0321919165
You won't need book two until you start looking at cloud based deployments or have a need for scalability.
There are a number of books for RHCSA I personally found Michael Jang's to be more digestible but that is more of a personal preference. I'd see if a local B&N has either and see which looks better if its an option. Also be aware that if you do intend to go for the cert; Redhat will be upgrading their exam to use the newer version of the Redhat distro which would make some of the material less relevant.
https://www.amazon.com/RHCSA-Linux-Certification-Study-Seventh/dp/0071841962/
Give me a DM if you need some help and I am cool pointing out resources or giving some pointers. The key is to make the data in the end valuable, instead of a jumble of graphs.
It was recommended to me by the Practice of System Administration book, which I highly recommend as it outlines many great 2017-2018 practices .
Just wanted to add, it seems that there is a newer version here. Considering picking this up myself!
Book recommendation: The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition) https://www.amazon.com/dp/0321919165/ref=cm_sw_r_cp_apa_cAaozbN8ZK48W
If you want an insight into what their job might be, you can take a look at this: https://www.amazon.co.uk/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=sr_1_1?ie=UTF8&qid=1541606293&sr=8-1&keywords=the+practice+of+systems+administration
Do yourself a favor, either buy The Practice of System and Network Administration or get it from the library. Make sure it's the 3rd Edition. Read Chapter 49 Perception and Visibility on page 913.
Pay special attention to 49.1.2 Attitude, Perception, and Customers on Pg. 918.
Then ask yourself what are projecting calling yourself glorifiedhelpdesk and creating a video titled "You don't fail at computer, you fail at life"?
https://www.amazon.ca/Practice-System-Network-Administration-Enterprise/dp/0321919165/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&amp;psc=1&amp;refRID=E97Z7PFVB2Z0Z8YF7TKR
"Ships from and sold by amazon.ca"
When I tried to go through the automated exchange process it said I didn't have a credit card on file when I clearly do. Phone support was able to process the exchange, but my experience with Amazon for this hasn't been great.
Only a small thing, but your link goes to the 2nd edition of the book, and now there is a 3rd edition.
Hopefully people can figure it out, but I don't want an errant bystander to accidentally get and older version.
Sure.
Good luck. You'll do fine.
Putting asside VA_Network_Nerd's condescending advice. If you want to go anywhere in your career you need to go beyond google. I'd go to indeed or DICE and search for Network Administrator or jr network admin in your area then look up job requirements and preferences.
Set up a GNS3 or Virl lab, or just buy some cheap switches/routers on ebay for homelab.
Get your CCNA. There should be no debate that CCNA is best for network admins starting out. I personally wouldn't let someone touch my network without at least a CCNA. Get hands on with Windows and Linux servers and various tools like nmap, nagios and other monitoring tools, wireshark.
Read:
The Practice of System and Network Administration
I also use cbtnuggets.com for my IT training. It's more than worth the monthly fee if you stick to it.
nice - added https://www.amazon.com/dp/0321919165 to buy list.
A+ and Net+ and all the other +-certs are entry level. CCNA is entry level, and 70-680 is entry level.
Something to consider is that everyone has certs these days, so the certs you get must make you better than "everyone".
For example, CCNP is a rather high-end cert. You don't see a lot of CVs with this on, because people with this cert only need a Linkedin page, and the offers will come in endless streams.
MCSE is absolutely good to have if you want to go anywhere in a Microsoft environment, though Microsoft doesn't really do high-end certs anymore, so the only thing you can really aim for with an MCSE is an MVP award, but that does take some serious effort.
WCNA is worth some brownie points in the right places.
You should also supplement certs with in-depth knowledge, and recommended practices, for example,
I can't really help much with regards to Linux though. It's not really my area.
Cem Kaner stuff is great. https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124
I would take a close look at what your doing now before looking for a tool to through money at. You will be able to get a better lift from fixing what you have now before starting on automation.
What is our current testing process?
When does it start?
Who does what, when?
How do we execute tests?
What type of documentation is there?
What is our definition of done?
What slows down testing?
Do we have the right people testing?
Check out the book Lessons Learned in Software Testing: A Context-Driven Approach - https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124
It's a collection of short lessons, read the ones you find relevant don't worry about skipping around. I think it would be very helpful.
I wouldn't run away, as some others are suggesting. QA/Testing is a great learning experience that can help you understand technology from a variety of different perspectives. Personally I would recommend buying a few good testing books, you can learn everything conceptually about testing from reading 2-3 books. Everything else is learning specific tools, businesses and technologies.
Here's the book I loved when I first started in a testing role (15 years ago though...) - https://www.amazon.co.uk/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124
If you are in Barcelona, DM me, happy to meet for a coffee.
&#x200B;
&#x200B;
&#x200B;
&#x200B;
&#x200B;
&#x200B;
&#x200B;
Just try googling python for linux sysadmins or something. There's presumably a bunch of resources.
What you're asking, however, is a strange question. You can't see how to apply programming to computers?
Here's a hint about what you can do with Python on linux: Everything.
This isn't me being disingenuous. Every task is essentially programmatically solvable, with enough effort.
Do you have any minor but repeatable issues with any of your systems, at all? Script it. Do you have any task that requires you to run several commands? Script it. Do you have any new-user setup tasks that require a bunch of changes? Script it.
Learn Python. Once you have learned Python, everything you see that you possibly think "this could be automated", automate it.
Three books for you:
Python for Unix and Linux System Administration:
http://www.amazon.com/Python-Unix-Linux-System-Administration/dp/0596515820
Gray Hat Python: Python Programming for Hackers and Reverse Engineers:
http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921
Foundations of Python Network Programming:
http://www.amazon.com/Foundations-Python-Network-Programming-Goerzen/dp/1590593715
If you aren't going to go the Python route, then you should teach yourself Scheme.
I just saw you said low on funds, but if you have a birthday or something coming up these two books have been great resources for me, and others that have taken a dive into it.
https://www.amazon.com/Linux-Bible-Christopher-Negus/dp/111821854X
https://www.amazon.com/Linux-Command-Shell-Scripting-Bible/dp/111898384X/ref=pd_sbs_14_img_1?_encoding=UTF8&amp;psc=1&amp;refRID=J9RW2JJ25KF0HEW2DDNK
One thing I'd say is DON'T BE DISCOURAGED. There's a lot to Linux, and it'll feel like you are drinking through a fire hose sometimes with concepts, everyone has been there, and I'm still very much there. In addition to reading a butt load, one thing that helped me take the edge of was getting a box up with something I'd use. My personal pet project back in the day was setting up a redhat instance and run a ventrilo server. It helped me learn things like security, package management, patching, getting real comfortable with things like awk and sed. I didn't expose it to the internet except for a few whitelisted IPs but it kept me learning for a long time, and made it fun.
Don't know if you are using 'linux bible books' as a generic term for linux manuals or you are actually recommending "The Linux Bible" as in: http://www.amazon.co.uk/Linux-Bible-Christopher-Negus/dp/111821854X
check mojo for vmcore stuff. should be several vmcore tags you can search for. i believe i remember The Linux Bible going into great detail about the boot process. Written by Chris Negus.
A few ideas: For best results, do all 3.
Setting up a homelab is a great way to gain some experience. Pick up an old server off ebay, or if you've got a solid comp at home start up hyper-v and get some VMs running. From there you can set up a domain, explore DNS & DHCP, windows updates, things like that. Or you can go down the linux route if you're more interested in that, get a spacewalk server set up, provision out some servers to do those same basic stuff. Set up a web server, a file server, a mysql server. The beauty of linux is that you can grab centOS for free and just start building up these servers. I saw on here the other day someone plugging the Linux Bible, I think it's a great book, a great learning tool, and a great way to get your feet wet building up servers and administering them. Beyond that, most of the info on the red hat system administrator cert is in the book as well, so...2 birds 1 stone? That's what I'm doing to explore things beyond my current scope of just SQL Server. Good luck!
https://www.amazon.com/Linux-Bible-Christopher-Negus/dp/111821854X
Study guide
Starter book (verify you know current min/max values before you attempt a test)
Depending on where you live and how serious you are, Stanly Community College is probably your cheapest bet to get a real education with a shot at the DCV. Get on the waitlist now, it may take awhile to get in.
Links for anyone looking to purchase a copy of these books
Mastering VMware vSphere 5.5
Amazon |
Barnes and Noble |
Google Play |
iTunes |
O'Reilly |
Wiley
Mastering VMware vSphere 6
Amazon |
Barnes and Noble |
Google Play |
iTunes |
O'Reilly |
Wiley
Happy VMing!
I am starting pretty much at ground zero on VMware. In my position at my job we have had vSphere 6.0 installed for almost 2 years now.
I took a New Horizons training course (vSphere: Install, Configure, Manage [V6.0]) about 6 months ago to get myself acclimated to do it. I put it all on hold though so I could bust out and grab the CCNA as I had heard rumblings that another test revision might be coming out within the next year and the new vSphere 6 exam wasn't even printed yet.
One of the things the instructor did emphasize though was using this book. http://www.amazon.com/Mastering-VMware-vSphere-Nick-Marshall/dp/1118925157
I have purchased it on Kindle and will begin the reading shortly.
Yes, "it really depends on what you want to do." For generics you can search for "vsphere best practices" and find whitepapers, or buy a vSphere book. You can also hit up \r\vmware.
Network Programmability and Automation
This is a good book. It's probably not the best book to use for your very first exposure to Python but once you've got something else under your belt I would go here. Runs you through all the basic tools and data structures that get used in network automation.
I second the official Python tutorial. If you approach it with the right attitude that'll teach you everything you need to know to start feeling some comfort with the language.
Check out Jason Edelman's book on network programmability and automation, it's a great place to start.
https://www.amazon.com/Network-Programmability-Automation-Next-Generation-Engineer/dp/1491931256
Jason Edelman’s book is the defacto standard to get going - “network programmability and automation”
https://www.amazon.ca/Network-Programmability-Automation-Next-Generation-Engineer/dp/1491931256
Ansible for DevOps is another good one by Jeff Geerling
https://www.ansiblefordevops.com/
And, full disclaimer I am the author and self publisher, my book “Automate Your Network” if you are looking to learn how to use Ansible to automate Cisco network
https://www.amazon.com/Automate-Your-Network-Introducing-Enterprise/dp/1799237885/ref=mp_s_a_1_1?keywords=automate+your+network&amp;qid=1567425212&amp;s=gateway&amp;sprefix=automate+your+n&amp;sr=8-1
They are just now starting to come out. I would recommend these two books "Network Warrior" (this covers real-world applications not covered by the soon former CCNA R&S exam). It is a bit dated but a good read. The other is "Network Programmability and Automation". These should help tide you over until the books come out. Both are on amazon.com
https://www.amazon.com/Network-Warrior-Everything-Need-Wasnt/dp/1449387861/ref=sr_1_3?crid=25XVKEVRZ1LXQ&keywords=network+warrior+3rd+edition&qid=1573413049&s=books&sprefix=network+warrior+%2Cstripbooks%2C232&sr=1-3
https://www.amazon.com/Network-Programmability-Automation-Next-Generation-Engineer/dp/1491931256/ref=sr_1_3?crid=5F6P0KHY1366&keywords=network+programmability+and+automation&qid=1573413098&s=books&sprefix=network+program%2Cstripbooks%2C207&sr=1-3
Adaptive Code: Agile coding with design patterns and SOLID principles (2nd Edition) (Developer Best Practices) https://www.amazon.com/dp/1509302581/ref=cm_sw_r_cp_apa_i_W-SrDbP9CE48Y
There are couple books that really stood out for C#. These don't touch on .NET core but the same techniques apply.
Functional Programming in C#. http://amzn.to/2Ct3q5B if you come from a functional lang, this one is a must. Great LINQ concepts as well.
Adaptive Code via C@ http://amzn.to/2CsglEP is an updated version of the original. Dependencies and layering really helped me understand the core concepts of .NET. It's a M$ Press book. Easy read and a great reference.
I agree with /u/IDA_noob check out the book below.
https://www.amazon.com/End-End-QoS-Network-Design/dp/1587143690
The bandwidth command on an interface affects routing protocol metrics (protocols like EIGRP and OSPF both use bandwidth as a part of their metric calculation) and as I recall it does affect the calcualtion (not actual bandwidth but the calculation which may then affect actual allocation in a policymap) in a QOS policies where the policy references bandwidth percentage (but not hard set expression listed in X bits per second).
&#x200B;
Since I am almost always running an RP on a WAN interface (this is MPLS) that more times than not has less of an allocation than its interface speed the bandwidth statement on the interface matches the allocation from the provider edge / circuit order.
&#x200B;
Then for QOS the shaping command is used to shape the traffic to the correct speed and a sub-policy is used to assign priority queue and bandwidth percentages based on class maps (which are often DSCP based). The is not the only way to skin the QOS cat though.
&#x200B;
This is a newer edition of a book that i used to use as desk reference material, I DO NOT KNOW what if this is the most current. Typically books are not, and instead Cisco online documentation is best. (but I am not hunting for that right now)
&#x200B;
https://www.amazon.com/End-End-QoS-Network-Design/dp/1587143690/ref=sr_1_1?ie=UTF8&qid=1536680974&sr=8-1&keywords=Cisco+press+end+to+end+qos+network+design
&#x200B;
one last thing, the best thing to remember is QOS is a congestion management tool...try to avoid needing congestion management tools by buying circuits that do not get congested.
&#x200B;
&#x200B;
Here is a really good book for Wireshark: https://www.amazon.com/dp/1593272669/_encoding=UTF8?coliid=I11HBIRF55QCWX&amp;colid=1QE51EOZ8AY1G
/r/Wireshark has some helpful posts either on the side or if you sort by top/all.
Wireshark can be intimidating at first with all the I information you get but if you follow some guides you will do good.
I really like the book Practical Packet Analysis
But just to get you started, try capturing traffic and then going to a website (non-ssl) like reddit.com. After loading the first page, stop the capture and take a look at it. You can search for strings you would expect in the capture, like "reddit.com" or "GET". You can start looking at the payload portion of the packets and go up to see all the layers.
I just ordered Practical Packet Analysis in order to become proficient with wireshark, I was wondering what basic (laymen) material you would recommend I read in order to understand different forms of attacks such as injecting cookies.
So much of the material easily available is very dry, and boring. (I do not find the material boring, it's more of a presentation bias[?])
On network security monitoring (network ids/ips) you might want to have a look at that book http://www.amazon.co.uk/Practice-Network-Security-Monitoring-Understanding/dp/1593275099/ref=pd_bxgy_b_img_y
https://smile.amazon.com/gp/product/1593275099/
I am not sure about the size of your environment. If it's small, Splunk may be way outside your budget.
Take a look at that link above if you really want to build an open source solution for security monitoring. It'll take a lot of elbow grease and knowledge of your business to be effective. Pick up the book and build yourself a POC to see what you can see.
We normally recommend Computer Networks by Andy Tanenbaum as a good place to start.
Anyway, I was just blowing you some shit. We're not normally this mean.
I do see your point to that. As for the different RAID types, I have a basic understanding, but not a professional's grasp. I'd definitely have to look to reference for usage, but I wouldn't feel completely out of my depth.
What would you recommend I should look at in regards to "learning the important stuff?" I've looked up the bootcamp link in the sidebar and plan on getting one of the books mentioned there for starters.
The Practice of System & Network Administration chapters 6 & 7 will definitely help you.
Most "schools" that offer QA programs or courses are usually a waste of money. This is due to the fact that there are not many regulations or standards that exist for education in this field. They can teach some extremely outdated syllabus and get away with it because their students and admins do not know any better (look at all the useless certifications out there). Testing is an extremely nuanced and complicated art, it's one of those things that is very easy to get started and do badly, and most people cannot tell the difference. This is an area where I'd like to make a difference later in my career. For now though, if you want to get into testing, I would suggest you to both learn the automation side (even though you didn't pass your java course, you are still probably technically savvy enough to learn the basics and go from there) and the theoretical testing concepts.
You get a lot of devs that do not have a testing mindset or testers without enough technical skills / coding experience. If you can do both really well then you will be looked at like a unicorn and can make a good living (depending on your country/area).
The easiest way to get into automation is learning through a tool like Postman (back end testing) or Selenium. There's tons of Udemy courses and youtube content for these.
Check out Valentin Despa's content for PM, and John Sonmez or Naveem's stuff for selenium.
For testing concepts such as analysis, risk, quality criteria, communication, test design and techniques I would suggest reading the following books:
https://www.amazon.ca/Explore-Increase-Confidence-Exploratory-Testing/dp/1937785025
https://www.amazon.ca/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124
https://www.amazon.ca/Perfect-Software-Other-Illusions-Testing/dp/0932633692
and consider taking Rapid Software Testing classes from michael bolton or james bach, they get pretty theoretical but are based upon practical work that you will be asked to perform.
These videos can also give you a pretty good sense of the testing role:
https://www.youtube.com/watch?v=ILkT_HV9DVU&t=19s
https://www.youtube.com/watch?v=3FTwaojNkXw&t=2048s
Are you talking like a client and a server type situation? Where a client requests info and the server gives it (I guess through a pipe).
If so, I want to say Computer Networking as what you are looking for. I just took a class on it last semester using this textbook. Though that's not a beginner class/topic to start off with in general.