Top products from r/SoftwareEngineering

We found 30 product mentions on r/SoftwareEngineering. We ranked the 27 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Top comments that mention 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/FUHGETTABOUTIT_1 · 2 pointsr/SoftwareEngineering

Since your thinking about putting some time and learning material and concepts that will help improve yourself, I recommend reading this one:
Make It Stick: The Science of Successful Learning https://www.amazon.com/dp/0674729013/ref=cm_sw_r_other_apa_1x21AbKZZ3XGE

u/its_just_shane · 1 pointr/SoftwareEngineering

I'm an embedded software engineer and I don't do much calculus. I do mess around with polynomials (which is just simple algebra) quite frequently. Polynomials are great ways to represent a nonlinear set of values for modeling analog sensors. My background is in electrical engineering so understanding Fourier analysis is really useful too but I haven't used it much which reminds me I probably should do a quick refresher on that soon.

I recommend this book to any software engineer no matter their level. It was an amazing read and gives you some insight on core methodologies to problem solving and just learning in general

https://www.amazon.com/Mind-Numbers-Science-Flunked-Algebra/dp/039916524X/ref=mp_s_a_1_3?adgrpid=57601891578&gclid=CjwKCAiAqqTuBRBAEiwA7B66hQSRttqQ90P0z_Eir5lDL0JXaHGw9w8HIcB-ePqxeHtD6LJffZe-MxoC7GYQAvD_BwE&hvadid=274722315593&hvdev=m&hvlocphy=1014452&hvnetw=g&hvpos=1t2&hvqmt=e&hvrand=13061966951674896290&hvtargid=kwd-295392791902&hydadcr=15176_9602975&keywords=a+mind+for+numbers&qid=1573500656&sr=8-3

u/the_real_chef · 2 pointsr/SoftwareEngineering

Clean Code Books:

u/TomOwens · 1 pointr/SoftwareEngineering

>The word engineer has been hijacked in various job titles such as software engineer, systems engineer and even sales engineer. But none of these positions are actually engineers at least not in how we use to use the word.

I fail to see how these job titles "hijack" the word engineer. I think the biggest problem is that there isn't a good understanding of what engineering is or what an engineer does, and part of that comes from the fact that there's very little published about engineering outside the context of a particular engineering discipline. We know that not all engineering disciplines are the same - I think most people would agree that a chemical engineer and a civil engineer and a mechanical engineer are all definitely engineers, but the things they do and how they do them are radically different. Even within a discipline, there are a broad variety of ways to do work. I'd highly recommend reading Billy Vaughn Koen's Discussion of the Method: Conducting the Engineer's Approach to Problem Solving. Koen also has an earlier paper - Definition of the Engineering Method - that is an early draft of the first 3 or so parts of the book, and the PDF full text of that is available.

​

>My reason for asking is now that I work in a country where software engineer title doesn't exist and is actually software developer instead.

That's generally the choice of the company. Unless all use of the title "engineer" is regulated by the government, companies are generally free to choose their own terms and titles.

​

>I'm wondering what software engineer means to you?

I'm pretty much in line with a lot of what Koen writes about, so I'd check out his paper or book. Using his definitions, I'd say that software engineering is the use of heuristics to cause desired changes in an unknown or uncertain environment or situation within the constraints and available resources. Koen defines a heuristic as "anything that provides a plausible aid or direction in the Solution of a problem but is_ in, the final analysis unjustified, incapable of justification, and fallible". Anyone who does this is conducting software engineering. However, I also think that in engineering, there's a side of professional responsibility and ethics. Koen doesn't get into this, but I believe that people who call themselves engineers also have obligations to the stakeholders in the things that they create or maintain or design, to other members of the profession, and to themselves.

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

u/lookbehindyou2 · 3 pointsr/SoftwareEngineering

Read Head First design patterns and really understand what encapsulation means.

u/ShaitanElnifi · 2 pointsr/SoftwareEngineering

Looking for something a bit more full stack.

Tried Beginning ASP.NET for Visual Studio 2015 a few years back and while the topic was what I am looking for, the book was full of errors and was essentially unusable