Best products from r/SoftwareEngineering

We found 33 comments on r/SoftwareEngineering discussing the most recommended products. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 27 products and ranked them based on the amount of positive reactions they received. Here are the top 20.

Top comments mentioning products on r/SoftwareEngineering:

u/maholeycow · 1 pointr/SoftwareEngineering

Alright man, let's do this. Sorry, had a bit of a distraction last night so didn't get around to this. By the way, if you look hard enough, you can find PDF versions of a lot of these books for free.

Classic computer science principle books that are actually fun and a great read (This is the kind of fundamental teachings you would learn in school, but I think these books teach it better):

  1. https://www.amazon.com/Code-Language-Computer-Developer-Practices-ebook/dp/B00JDMPOK2 - this one will teach you at a low level about 1's and 0's and logic and all sorts of good stuff. The interoperation of hardware and software. This was a fun book to read.
  2. https://www.nand2tetris.org/book - This book is a must in my opinion. It touches on so many things such as boolean logic, Machine language, architecture, compiling code, etc. And it is f*cking fun to work through.

    Then, if you want to get into frontend web development for example, I would suggest the following two books for the fundamentals of HTML, CSS, and JavaScript. What I like about these books is they have little challenges in them:

  3. https://www.amazon.com/Murachs-HTML5-CSS3-Boehm-Ruvalcaba/dp/1943872260/ref=sr_1_2_sspa?keywords=murach%27s+html5+and+css3&qid=1557323871&s=books&sr=1-2-spons&psc=1
  4. https://www.amazon.com/Murachs-JavaScript-jQuery-3rd-Ruvalcaba/dp/1943872058/ref=sr_1_1_sspa?keywords=murach%27s+javascript&qid=1557323886&s=books&sr=1-1-spons&psc=1

    Another great book that will teach you just fundamentals of coding using an extremely flexible programming language in Python, how to think like a programmer is this book (disclaimer: I haven't read this one, but have read other Head First books, and they rock. My roommate read this one and loved it though):

  5. https://www.amazon.com/Head-First-Learn-Code-Computational/dp/1491958863

    Let me know if you want any other recommendations when it comes to books on certain areas of software development. I do full stack web app development using .NET technology on the backend (C# and T-SQL) and React in the frontend. For my personal blog, I use vanilla HTML, CSS, and Javascript in the frontend and power backend content management with Piranha CMS (.NET Core based). I often times do things like pick up a shorter course or book on mobile development, IoT, etc. (Basically other areas from what I get paid to do at work that interest me).

    If I recommended the very first book to read on this list, it would be the Head First book. Then I would move over to the first book listed in the classic computer science book if you wanted to go towards understanding low level details, but if that's not the case, move towards implementing something with Python, or taking a Python web dev course on Udemy..

    Other really cool languages IMO: Go, C#, Ruby, Javascript, amongst many more

    P.S. Another book from someone that was in a similar situation to you: https://www.amazon.com/Self-Taught-Programmer-Definitive-Programming-Professionally-ebook/dp/B01M01YDQA/ref=sr_1_2?keywords=self+taught+programmer&qid=1557324500&s=books&sr=1-2
u/welfare_pvm · 1 pointr/SoftwareEngineering

What field do you want to specialize in? Embedded? Web? Mobile?

The best way to learn is by practicing, but if you want more of an abstract, design level read, there are lots of options.

I'm have a web background, so here's three that I've read recently as examples.

I enjoyed this book on microservice design and I think everyone who uses OOP should at least familiarize themselves with the common OOP design patterns.

If you are into JavaScript, Eloquent JavaScript is my go-to for a good mix of summary/detail of the language. It's well written, and comes with fun exercises at the end of each chapter to help solidify your understanding of each concept.

I'm sure there are other great books, but these are some of my favorites so far.

u/LinuxStreetFighter · 1 pointr/SoftwareEngineering

Udemy has a great course on Full Stack Web Development and Java. PluralSight also has phenomenal paths on C# and Java.

Check out GitHub and do a search for some projects you might be interested in. Fantasy text based games, checklists, to-do lists, mobile games, etc. See how other people write code. Eventually you can offer to participate in the projects and contribute or fork your own.

Books! Books are great resources, especially if you know where to look. Some can get dated, very quickly, but others are timeless.

Core Java Volume I

Python Programming: An Introduction to Computer Science

Eloquent JavaScript

Head First Ruby


Regarding Python Programming: Let me tell you everyone's most hated research methodology. An anecdote! I hated, I absolutely
HATED* Python.

"Python is beautiful!" said the pompous coder. "Python is the world!" said the obnoxious tool. I thought it was ugly, jagged, white space loving garbage.

Turned out, it was the method I was learning Python. That book changed my life.

Anyway, back to the other books.

Core Java Volume I and II are INSANE in the amount of information they give. You will learn more about Java than you probably care to know, but when you finish both volumes you'll be able to do anything with the language.

Eloquent JavaScript is one of the best JavaScript books I've read, and I've not read them all, but I've read more than a few. But who am I? :D

I'd get the Ruby book after you've learned some Python or get it before you dig into Python. Could get a little confusing. But after one, you'll essentially know the other.

Some of the replies have suggested to ask your company to cross train or see what stack their working in and learn that. I disagree for a couple of reasons (which should be taken with a heaping spoon of salt):

  1. It's always good to see what else is out there. The best way to get a raise is to get a job at another company!

  2. The stack the company is using could be out of date or not in demand. We don't live in the age of working for the same company for 25 years. In fact, with software engineering, it's good to experience different tech every few years. It wouldn't be a bad idea to ask to shadow or maybe mentor, and depending on the time invested you might want to give them at least a year.

    This is another example of personal experience, I am far from an expert.


    Check out some podcasts too!

    Coding Blocks .NET

    Code Newbie

    Programming Throwdown

    Coder Radio (see below)


    Sometimes that guy can be super jaded and negative, just an fyi... They do cover good subjects, though.



    Also, not a podcast, but https://scaleyourcode.com/ has some good insight on software development as a career.

    Good luck! There is a slew of information out there.

u/Torber-Rade · 1 pointr/SoftwareEngineering

One of the best investments I ever made was buying Cracking the Coding Interview, written by Gayle Laakmann McDowell. It was the required text book for my Data structures and Algorithms course when I was doing my undergrad. It’s useful for 2 reasons: it does a really good job of teaching basics of data structures and algorithms, as well as Big O, and it’s also a great roadmap for applying to and interviewing at tech companies. Link for amazon: Cracking the Coding Interview

u/jefidev · 3 pointsr/SoftwareEngineering

Hello,

From my experience, the tool selected for a project will always become the wrong choice after a certain period of time. It is never obvious which tool is the best at the beginning of a project. An experimented team will more likely make reasonable choices but they should always keep in mind that the tool they use will be replaced at some points or modified. That's why architecture and good coding practice are the cornerstones of a project able to withstand evolution.

I had to work, one day, on the transition from SQL to MongoDB. There is no magic, all the code calling the SQL data source had to be rewritten. It is a costly process but the final cost of the operation mainly depends on how well the calls to the database are isolated from the rest of the software.

Sadly, I don't have any tools for handling this specific case. But I can recommend those books :

  • For your team it could be interesting to read Clean Code : Some of the approaches of this book could be contested, but globally the essence of what it teaches is useful for designing good evolving software
  • For a manager I recommend Project Phoenix : It is a fiction about a company struggling to manage its IT and how the new CTO tries to overcome those issues. It is a good fable with a lot of lesson for IT management.
u/swankybear · 2 pointsr/SoftwareEngineering

Boot camps might help teach certain technologies, but they might not help with the fundamentals. Additionally before you give money away try to complete courses on Udemy or Coursera to see if you can commit to the effort.

Over simplified recipe for building skills to transition:

  • code on the side; build skills to learn and dig deep. You'll always be solving things you may not know. The skill of learning is huge. Always be curious.

  • Master an OOP language, a scripting language, and maybe get familiar with CSS/HTML/JavaScript Node if you want to be a modern web Dev.

  • read this: https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

  • read this (recommend to study for Google interviews): https://www.amazon.com/gp/aw/d/1848000693/ref=zg_bs_3870_4?ie=UTF8&psc=1&refRID=70YNX3TJA8F9GXG03Q9F

  • learn about web services . Try to build one from scratch with a REST API and a connection to a database. A lot of good fundamentals here and a lot of companies have devs that do this daily.

  • code some stuff on GitHub; maybe find an open source project to contribute to. Get involved with a Dev community and you'll learn 10x more than paying for a boot camp.

  • If web Dev turns out to not be your thing. Dive into other "programming" domains such as machine learning, big data, embedded systems, etc.


    If any buzzwords here might not make sense, congrats you get your first exercise in digging for answers ;) (no rudeness intended)
u/tinbuddychrist · 2 pointsr/SoftwareEngineering

Someone else said the issue would be getting a job, not learning. I tend to agree and I think it can go together with your question.

Different places will look for different things. Major software companies (Google, Amazon, etc.) select using algorithm programming companies. Get a copy of Cracking the Coding Interview or something sinilar and make sure you understand all of the topics in it well enough to reimplement a heap or a breadth-first graph search, etc., in 20-30 minutes. Read up on this stufff further outside of that book when you aren't sure on the "why" and it'll help.

Other places will look at your resume more to see proof you can perform, so you will want to fill it with links tp your Github where you show off meaningful work. Have at least one full-stack CRUD app, i.e. a database of [whatever] with an API to manage the entries and a web-frontend that exposes the API functionality to end-users. That's the bread-and-butter of profrssional software development. (Sounds like you are working on that.) A few meaningfully complex projects that aren't just CRUD apps to round it out will be nice - the games you mentioned, for example.

For good general engineering skills - writing maintainable code and so forth, stuff that will make your work shine and make it easy for you to collaborate with other professionals - there are a few books that a lot of people read and reference, such as:

Code Complete
Refactoring
Clean Code

(Personally I find Martin to be a bit much, but you'll hear his ideas referenced anywhere.)

Can I see some of your existing work? That would help me understand where you are in your journey thus far.

u/beltedgalaxy · 1 pointr/SoftwareEngineering

This is a common challenge, and gets harder with marriage/kids/more job responsibilities/etc. I've been in the industry for ~25 years, and it has always been a constant struggle. The short of it is that you need to make the time. Personally, I run and do pilates for my exercise, total of 6 days a week, 1 hour a day. Where I work is conducive to exercise as we have a locker room and showers, so I do it there. To give you an idea of my schedule, I'm up at 4:40, on the train by 5:40, at the office by 7, exercise and clean up and in my seat by 8:30AM. I'm usually in bed by 10:30PM. I never thought I could run, but I used the book Running for Mortals . It literally changed my life. *EDIT* And I recommend Fitness Blender, TONS of free pilates videos on YouTube, from intro level to "dear god I want to stop" level.

u/the_real_chef · 2 pointsr/SoftwareEngineering

Clean Code Books:

u/jonathan-fulton · 2 pointsr/SoftwareEngineering

A lot of the tips, including this one, come from Uncle Bob's "Clean Code" book. I recommend picking it up for a much more thorough examination of Clean Code principles. https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

There are times when a 4 line restriction on function length is burdensome, but it tends to be a good guideline. Language also matters. I've found it's harder to adhere to the 4 line restriction in Node than PHP for example just based on typical syntax for the language.

u/shaziro · 4 pointsr/SoftwareEngineering

For testing, I liked this one: https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627

For version control, continuous integration, continuous delivery, this was a good read: https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912

There are many extreme programming books that briefly talk about pair programming. If you want a book specifically on pair programming only then there is this: https://www.amazon.com/Pair-Programming-Illuminated-Laurie-Williams/dp/0201745763

There are thousands of books out there for learning various topics of software engineering.

u/zdwolfe · 1 pointr/SoftwareEngineering

Buy or rent a copy of Cracking the Coding Interview. It has a ton of practice interview questions, which is cool, but there's also a ton of "soft skills" advice, interview prep timelines, resume building tips, etc.

https://www.amazon.com/dp/0984782850