(Part 2) Best books on client-server systems according to redditors
We found 492 Reddit comments discussing the best books on client-server systems. We ranked the 74 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.
Here's my list of the classics:
General Computing
Computer Science
Software Development
Case Studies
Employment
Language-Specific
C
Python
C#
C++
Java
Linux Shell Scripts
Web Development
Ruby and Rails
Assembly
I've posted this before but I'll repost it here:
Now in terms of the question that you ask in the title - this is what I recommend:
Job Interview Prep
Junior Software Engineer Reading List
Read This First
Fundementals
Understanding Professional Software Environments
Mentality
History
Mid Level Software Engineer Reading List
Read This First
Fundementals
Software Design
Software Engineering Skill Sets
Databases
User Experience
Mentality
History
Specialist Skills
In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.
Also check out their IRC channels, forums, and mailing lists.
> Yep. ... been trying to sign up since i got the email at work and i keep being put in a never ending cycle to update my profile.... yall should of know this would have blown up and been prepared
> Mark Darrah
> Verified account @BioMarkDarrah
> It wasn’t publicly announced for precisely this reason
Mr Darrah, please give this level 23 book to your web frontend people: https://www.amazon.com/Release-Design-Deploy-Production-Ready-Software/dp/1680502395/
They will be eternally grateful for it.
Among other things, it explains why "we'll just not advertise the link" is a non-viable strategy.
I agree with OP. If you are looking for a good architecture book(s), beside fowlers, I've enjoyed
designing data intensive applications by M. Kleppmann https://dataintensive.net/
I really can't praise Kleppman's book enough.
The Service Manager Unleashed and Service Manager Cookbook are both great resources. the cookbook gives you a good overview and shows you how to do many common tasks, and the unleashed book provides a great deep dive.
There are also a ton of great community resources available.
MyITForum - The Largest, Oldest, and Most Active System Center Community
System Center Central - A community dedicated to Microsoft System Center 2012
System Center Universe - Past System Center Universe presentations
Microsoft Virtual Academy - Microsoft Virtual Academy – Various getting-started courses.
Channel9 – System Center and other Microsoft related video presentations.
Marcel Zehner’s Blog – A Service Manager MVP
Chris Ross’s Blog – Another Service Manager MVP
Anders Asp’s Blog – Yet another Service Manager MVP
Anders Bengtsson’s Blog – He is a Microsoft Senior Field Engineer. This one is mainly around automation with SMA and Orchestrator, but also has some good SCSM info.
Cireson Blogs - They make a ton of Service Manager add-on, some free
SCSM PowerShell Overview - A blog series I've been writing on how to use PowerShell with Service Manager
System Center 2012 Service Manager Survival Guide - A large collection of helpful Service Manager links.
Get The Microsoft Manual of Style
Download a trial version of Adobe Framemaker
Learn how to do good screen captures using SnagIt or something similar.
Good luck.
http://www.reddit.com/r/SCCM/comments/1z115m/new_to_sccm_looking_for_possible_booksadviceetc/
COPY/PASTE FROM LINK ABOVE:
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM\CcmExec /v ProvisioningMode /t REG_SZ /d false /f
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM\CcmExec /v SystemTaskExcludes /t REG_SZ /d "" /f
net use s: \SCCMSERVER\SITECODE\client
s:\ccmsetup.exe
net use s: /delete
I can recommend this one. I'm not able to find a Current Branch version (I suspect there isn't one yet), but it should still be pretty relevant
https://www.amazon.com/System-Center-Configuration-Manager-Unleashed/dp/0672337150
https://www.amazon.com/Mastering-Microsoft-Deployment-Toolkit-Stokes/dp/1782172491
For Rails, pick up whatever edition of this series matches the version(s) you want to be familiar with. Keep in mind that learning Ruby and learning Ruby on Rails aren't exactly the same thing.
I can't really imagine why you would want Rails and Java at the same time, as it would be faster to get comfortable with one and view the other as a sum of the differences instead of re-learning all the similarities.
To date, the best programming book that I've read is C Programming Language by K&R. It's a pretty complete text on the C language. It is more than sufficient to enable the reader to be a good C programmer, yet it is still entirely digestable by new programmers. It is 274 pages. There are some recent gems, like Programming Clojure (304 pages). However, these days the norm seems to be more like Applying Domain-Driven Design and Patterns: With Examples in C# and .NET (576 pages), Real World Haskell (710 pages), and The C++ Programming Language (1030 pages). These books are all good. They just are hard to carry around and hard to hold while reading for long periods. I'm looking for good programming books that are short; an upper limit of roughly 325 pages. Post links to your favorites!
The way I see it, how you can answer design questions is a gauge of your experiences and knowledge up to that point, and an indicator of what you've been exposed to. In a way, how you'd answer those questions is very much your 'real world' answer, which may be different from someone else's, who would in turn have a different answer from a third person.
If, for example, all you did was desktop application development and never had to work on distributed system for data processing, or some kind of large-scale distributed web service, your answer would indicate that. The further discussions for those types of questions ("Why did you pick that?", "What happens if I need to convert it to a real time stream?", "How would you change the design if it was meant to handle 10x the load?") would be more difficult without practical applications of such knowledge. You can't just be like "Well, I'd throw a Cassandra cluster into it" and expect the interviewer to be satisfied.
Now, if you want to get 'better' at such stuff, I think you need to approach it a lot more holistically, because it involves many concepts.
At the base level you will probably in interested in some core concepts of distributed systems, like:
It's also good to see how companies in the real world do it: Amazon Web Services, Netflix, Twitter, Facebook, Etsy, Google, and more maintain developer/technical blogs where they discuss the design of their systems and software. Additionally, you could look at High Scalability which talks about this stuff too.
The caveat for all of this, though, is that most things will just throw words and concepts at you without much explanation for it, so you will have to put in a lot more legwork to understand what they're talking about.
If you have an Amazon Prime account.
https://www.amazon.com/Stealing-Pride-Vol-Customizations-ConfigMgr/dp/9187445034/
https://www.amazon.com/Deployment-Fundamentals-Vol-Deploying-Microsoft/dp/9187445212/
Links I found useful
https://mdtguy.wordpress.com/
https://deploymentresearch.com/
https://deploymentbunny.com/
When you inevitably go down the rabbit hole of customsettings.ini and bootstrap
https://docs.microsoft.com/en-us/previous-versions//bb490304(v=technet.10)
Driver Injection and all the fun that comes with it
https://community.spiceworks.com/how_to/116865-add-drivers-to-mdt-all-versions-total-control-method
It's a lot of links but I think all of them are worthwhile. Either way, Google is your friend when learning MDT. These are all pertinent links if you are serious about learning MDT.
​
Distributed systems is definitely good to know for some kinds of machine learning. This is a standard intro text for distributed systems. I'd probably dive into something about parallel computing while you are at it too. And then high performance computing when you got the basics covered.
The best thing for you are old books from that time. And they're cheap.
You're just looking for books that are in the Rails 2.x range, as it'll be hard to be specific to 2.1, but Rails release notes will help you bridge the gap between specific point releases.
The third edition of Agile Web Development With Rails and the first edition of The Rails Way are both Rails 2.x books.
Here's also an old online Rails 2.1 tutorial to help you in the meantime, but don't try to just get by on the few old web tutorials that are still online. Order books today. They're much deeper and broader than a web tutorial and they'll be invaluable if you're going to be working on this project for any real period of time.
EDIT: Michael Hartl's fantastic railstutorial.org has the "pre-1st edition" version of his book, which covers Rails 2.3, still available for free PDF download. Definitely grab that.
Absolute FreeBSD: The Complete Guide to FreeBSD, 2nd Edition
Stealing with Pride from the best OSD leaders in the industry. Stealing with Pride, Vol. 1: Advanced OSD Customizations for MDT 2013 and ConfigMgr 2012 R2 https://www.amazon.com/dp/9187445034/ref=cm_sw_r_cp_apa_NCqkzbV2DQ8P1
I do tech. writing for a software company and use the Microsoft Manual of Style 4th Edition. Depending on your audience, The Global English Style Guide may also be useful to you.
https://www.amazon.com/dp/0735648719/ref=cm_sw_r_cp_awdb_t1_CYUyCb7G6WSE1
https://www.amazon.com/dp/1599946572/ref=cm_sw_r_cp_awdb_t1_AXUyCbD9VHMSZ
Yes, there is still lots of misconceptions about the OOP. But the way they were invented, like 30 years ago, they really promoted good design principles as a difference to Procedural Programming with mutation, procedures and state. You may find David West's book on objects interesting. And you may want to have a look at some proper OOP code in Takes. To me OOP and currently popular functional programming are very close friends.
System Center 2012 Configuration Manager (SCCM) Unleashed + R2 Update
https://docs.microsoft.com/en-us/sccm/
I highly recommend installing, and testing in a lab environment as well. your first time installing it should not be your production server.
Some of the Official MS Training is not terrible either, though it is expensive if you are paying for it directly and if you get a decent / experienced instructor.
https://www.microsoft.com/en-us/learning/course.aspx?cid=20696
There's lots of good books, but not all are free. For free books check out google books
http://www.google.com/search?q=c%23&btnG=Search+Books&tbm=bks&tbo=1
But as far as good books for sale I would recommend the following:
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET - This is a really good book that helps with more advanced topics like domain driven design and object modelling.
LINQ Unleashed: for C# This is not a straight up c# book. However, they do cover a lot of the more advanced topics upfront (anonymous types, extension methods) and gives a really good introduction to LINQ (a query syntax for .NET). Most real applications today use some form of LINQ so it's good to know.
*Pro ASP.NET MVC 2 - This book is about ASP.NET MVC which is a framework for building sites in .NET. All the examples are in C# and the other does a good job of introducing concepts that will help outside of web sites. Things like the repository pattern for data abstraction and unit testing. Overall a great book.
> There might be a more up to date version
Would that be this one?
The subreddit sidebar has links to some good training video playlists, so check those out. For books I like SCCM Unleashed and the Deployment Fundamentals series.
I don't believe Microservice-to-Microservice communication is an antipattern. It is a common practice. The only way to avoid it in many cases is to make a monolith. Having services talk to one another does have a cost, so you need to do it sparingly and cautiously. It adds latency, and couples the services such that if one goes down, so does the other, so use appropriate patterns for resiliency. You definitely want to avoid deep chains of calls (Service A calls B that calls C that calls D...etc) as the latency will grow and the risk of failure multiplies with each new dependent call in the chain.
Often, you can reduce the number of service-service calls by consolidating services. The word "micro" in microservices often leads people to build services that are too small and this introduces even more service-service calls. These "nano-services" are indeed an antipattern.
Also used this book:
https://www.amazon.com/Skype-Business-Unleashed-ebook/dp/B01M0532Y4
I used excerpts from this textbook in one of my classes and it seemed pretty thorough if not brief: http://www.amazon.com/Distributed-Systems-Concepts-Design-Edition/dp/0132143011/ref=sr_1_5?ie=UTF8&qid=1371163267&sr=8-5&keywords=distributed+computing
Also this one: http://www.amazon.com/Distributed-Systems-Principles-Paradigms-Edition/dp/0132392275/ref=pd_sim_b_1
Distributed Systems is a fast growing field better understood in practice, I believe. There are good books around such as this but most of them are lagging behind. Conference papers are somewhat more popular nowadays but it is quite easy to get lost on the search.
My advice would be to get a quick overview from material proposed by others here and then go practical and try to model and implement distributed systems abstractions such as reliable broadcast, atomic registers, consensus and atomic broadcast. You can get a nice almost up-to-date overview of such abstractions here (totally recommended) while implemention-wise I would suggest actor based programming such as using Erlang (top-notch fun tutorial) or Scala Akka. If you know Java you can implement components using a message-passing component model such as Kompics. Do not hesitate to pm if you need help in the way! :)
For a distributed and system-level perspective on some problems, incl. message passing, read In Search of Clusters. It's awesome.
https://www.amazon.com/Mastering-Microsoft-Deployment-Toolkit-Stokes/dp/1782172491
Shameless plug. I think MDT is going the way of the dodo tbh. Autopilot on 10 seems the bees knees these days.
It didn't seem that bad to me, I read through a book and ran through the whole cbt nuggets video set (which is pretty long I guess) and passed. I used: http://www.amazon.com/System-Center-Configuration-Manager-Unleashed/dp/0672334372 if that helps.
As promised here are the SCSM resources I have used over the years.
Microsoft Resources
Service Manager TechNet – Service Manager technical documentation.
Service Manager Engineer Blog – A blog run by the Microsoft product engineers for SCSM.
Microsoft Virtual Academy (System Center 2012 courses) – Online training course for System Center produces including SCSM.
Blogs
Marcel Zehner’s Blog – A Service Manager MVP
Chris Ross’s Blog – Another Service Manager MVP
Anders Asp’s Blog – Yet another Service Manager MVP
Anders Bengtsson’s Blog – He is a Microsoft Senior Field Engineer. This one is mainly around automation with SMA and Orchestrator, but also has some good SCSM info.
Books
Microsoft System Center 2012 Service Manager Cookbook – I have read this book and it contains a ton of good information on setting up and deploying SCSM. It provides a great foundation on how and why things are done in SCSM.
Microsoft System Center: Optimizing Service Manager – I have also read this book. It provides some guidance along best practices when it comes to deploying and customizing SCSM. The kindle version is free.
System Center 2012 Service Manager Unleashed – This title has not been released yet, but the Unleased series is known for be great resources.
Haha guess I saw the "tipsy" and checked out after that! My focus is functional programming, so most of my recommendations are around that.
LambdaCast and The REPL are good and worth listening through (full disclosure I was on the REPL).
Other casts that I cherry-pick through:
Some good books:
You should also check out hillelogram and his talks/podcasts/writing on TLA+ if you're not familiar.
Do you have any good recommendations?
What are the position's responsibilities? What is the environment like (number of workstations/servers)? Is there already an SCCM environment in operation? If so, is it 2007/2012/2012 SP1/2012 R2? Is there a team supporting SCCM or would it just be you?
If you're going to be the admin, packaging expect, deployment admin, and sole tech support and you have no experience yourself...that'll be a big learning curve. It's not impossible, but it'll be a lot of research.
Microsoft's Virtual Academy is great.
If you like books, the "Mastering" and "Unleashed" books are two of my favorites. There's a lot of great blogs out there for System Center, too--System Center Central is my default stop, but of course /r/sccm is great too!
And for any questions that you can't get answered via any of those methods, the Technet forums are invaluable. You'll get to be on a first name basis with some of the MVPs, they're phenomenal.
That looks correct.
The database copies are Active / Passive, so you will only have one copy mounted at a time. That's the active copy that your clients are connected to, mail is being delivered to, etc. That active copy is shipping transaction logs to your passive copies in order to keep them in sync so if there is some issue the passive copy can be activated (mounted) to take over without data loss.
You might want to pick up a book on Exchange - there's some really good material out there.
It's been a while since I read for Exchange 2010 so don't remember everything I read at the time, but still have this on my bookshelf: https://www.amazon.com/Microsoft-Exchange-Server-2010-Practices-ebook/dp/B00JDMPBI2
Or if you want to learn about Exchange 2016 (since 2010 end of support is coming): https://www.amazon.com/Mastering-Microsoft-Exchange-Server-2016/dp/1119232058
EASY ANSWER FOR YOU: https://docs.microsoft.com/en-us/exchange/exchange-deployment-assistant
 
If you actually want to learn: buy a book like this and read through it and/or purchase one of the cheap-ass video courses from Udemy.
 
I've done both of these things and they are WELL WORTH the tiny amount of money to get you going. Yes, google is good too, but you're basically digging up a mix of resources - some of which could be bad info if you're not careful.
 
What sort of trouble did you run into with your domain controller that set you back?
 
Here are the steps I took to build a test environment:
Please don't downvote into oblivion for suggesting something other than SCCM, but if SCCM 2012 proves to be too much to take on, you may wish to look at something like the Dell-branded product KACE.
While I vastly prefer SCCM, KACE has a slightly lesser learning curve and there's a free 30-day trial available. Anything you set up in the trial can roll over into your live environment, so no time is wasted.
If your heart is set on SCCM, ask your higher ups to consider a training class and/or a consultant to assist in the environment creation. SCCM is rewarding, powerful, and can lead to much more interesting jobs down the line, but it's a beast to get going.
Once the environment is set up, this book will more or less get you going with most everything else.
Best of luck to you!