TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Learning proper software engineering practices as a student / researcher

14 pointsby testtesting123almost 4 years ago
Hi HN, During my undergrad, I spent time working with programming tasks mainly related to research and I often felt like a lot of it was super messy due to fast research deadlines and most&#x2F;all others working on the project not worry about the coding.<p>Before I start to do my research as a grad. student, I would like to learn how to construct applications with proper structure. I have looked around the internet and either examples are too simple and contrived or are complex open source projects which make it hard to understand why they do things a specfic way. I have never had to time or intership to work and discuss large projects and how they engineer certain things. I feel like I have learnt a lot of concepts in school in a sandbox and I&#x27;m ignoring so many concepts I learned about design patterns and software.

5 comments

Jakobehaalmost 4 years ago
I heard (from a research professor!) that the best way to learn real-world large-scale design patterns is to work in industry. Because at a big company, you <i>are</i> working on a real-world large-scale system. So I would recommend, if you have the opportunity, try getting an internship before grad school.<p>Of course not all companies have the best practices, but in my experience most do. If you decide to find an internship, ask about design patterns &#x2F; code reviews in your interviews.<p>Alternatively, you could read up on good design patterns and practice. I&#x27;ve heard people recommend Uncle Bob&#x27;s &quot;Clean Code&quot; and &quot;How to Design Programs&quot;. Also see <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25299547" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25299547</a>.
评论 #27615956 未加载
bwh2almost 4 years ago
Read Code Complete and Clean Architecture, then start incorporating those tactics and concepts into your own projects.
mikewarotalmost 4 years ago
One of the many skills you need to learn is to be able to repurpose your code to do new tasks. The Advent of Code is a set of programming puzzles in 2 parts that happen December 1-25. The challenges ramp up in difficulty.<p>The first part is usually something that you can solve with the most obvious algorithm... the second part requires a far more optimum solution. These exercises are fun, challenging, and online, you can do them any time.<p><a href="https:&#x2F;&#x2F;adventofcode.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;adventofcode.com&#x2F;</a><p>Also note that these are great for trying out that new programming language you wanted to learn.
评论 #27615183 未加载
dd444fgdfgalmost 4 years ago
there&#x27;s no one right answer because to some extent it&#x27;s subjective.<p>it&#x27;s also like asking for advice on how to write a book, whilst having never read a book.<p>read lots of code, write lots of code, listen a lot, and form your own path
austincheneyalmost 4 years ago
As an army guy that deploys a lot what has helped me is portability, slim code with minimal dependencies that can be easily repurposed. Don’t make any promises or assumptions about your network connectivity or executing environment.