6
votes
How to be productive around constant 4-6 min interruptions while "slow" code runs?
You cannot argue with physics.
When ad-hoc calculations start to take so long they start to bother you, and you cannot optimize them any more, the only sensible option is to organize the work ...
5
votes
Accepted
What steps should I take to become familiar with a new code base?
It depends on your strengths.
Some people learn best through tinkering. Taking the code, compiling it, poking at it somewhere, looking at the result, repeat as necessary.
Some people learn best ...
4
votes
Accepted
Is it required for an app developer to know information security?
You need to understand basic security concepts. But you do not have to be an expert.
Where possible, using existing libraries is vastly preferable. Especially things like encryption are impossible to ...
4
votes
How to formally figure out the best design based on the informal user's description of their needs?
You actually aren't far off the mark. If your client cannot clearly say what he wants your best bet would be to 1. talk to him! 2. knock up a quick prototype 3. listen to what he says. Repeat until ...
4
votes
Write some code and plague it with anti-patterns or not write it at all, any escape from this dilemma for a beginner?
Dilemma? I'd call this an opportunity! Definitely write the code! What it will teach you is worth so much more than the cost of having some bad code.
Only when you have experienced the up- and ...
4
votes
How to ask a programmer a question without getting "Why" as the answer
Every answer here is a good answer to the "why" question, but no one has really answered the OPs question.
How can you ask a programmer a question in a way most efficient in extracting the answer ...
3
votes
How to ask a programmer a question without getting "Why" as the answer
Good programmers don't just want to implement any solution; they want to implement the best solution for the specific issue. This requires information. Questions are the way to gather information. ...
3
votes
Methods of ordering function definitions in code
In an Object Oriented language it is important that you can scan a class's data and public interface easily. On a code file level that means you put your encapsulated data first, immediately followed ...
3
votes
Is there a correlation between some software engineering practices and software engineering success stories?
There are indeed, attempts at quantifying these with studies, however, they are often pay-walled (like the CHAOS report by Standish group) that, according to some reviewers, show Agile projects are ...
3
votes
Write some code and plague it with anti-patterns or not write it at all, any escape from this dilemma for a beginner?
Here is another rule:
Perfection is the enemy of Progress
Unless you projects purpose is to demonstrate your understanding of software engineering best practice. Then you are better off with ...
2
votes
How to formally figure out the best design based on the informal user's description of their needs?
Your way of doing things is formally called Prototyping.
With several iterations and discussions the formal name is Agile.
2
votes
Write some code and plague it with anti-patterns or not write it at all, any escape from this dilemma for a beginner?
One of the tools I find most useful for working through bad code is code review. Having another pair of eyes can help you see ways to improve a bit of code in a way you hadn't considered before.
...
2
votes
How to formally figure out the best design based on the informal user's description of their needs?
Matching "customer" expectations is a multi-parametric unsolvable problem with no closed-form analytical solution, for many reasons, of which one should be enough (as it makes all the difference in ...
2
votes
Is it required for an app developer to know information security?
... in this next app the user will store sensitive data in the app ...
storing the data outside user's device ...
I'll need to encrypt and secure the data.
is it required of an app developer to learn ...
2
votes
Is it required for an app developer to know information security?
While the "heavy lifting" of constructing a crypto algorithm infrastructure might have been done by the people who work at agencies with three-letter names, it is absolutely crucial that you use them ...
2
votes
Is it required for an app developer to know information security?
Required? No. There's no licensing for app developers after all. Prudent? Absolutely.
And bear in mind that while the heavy lift of, e.g, implementing an encryption library, has been done by experts ...
2
votes
Publishing packages for personal and commercial use
In most jurisdictions, software that was written as part of your employment duties (aka your job) belongs to your employer. That means that you are not allowed to publish that software in any way ...
2
votes
Accepted
What exactly is Software Development for IoT?
The biggest difference is hardware constraints. A thermostat hanging on your wall is clearly going to have less processing power and memory space than your desktop computer. That will clearly affect ...
2
votes
How to be productive around constant 4-6 min interruptions while "slow" code runs?
Depending on how often those happen - take a break. Get up, walk around, think, make a drink, something. The truth of the matter is that no human can be focused 100%, and no employee will work 100% of ...
1
vote
Leetcode: 2327. Number of People Aware of a Secret and Problem with programming skill in general
I'm trying to provide an intuitive answer to your intuitive question here, because you're not asking how to solve the problem but rather why recursion is not the favored way of doing so.
Let's explore ...
1
vote
Leetcode: 2327. Number of People Aware of a Secret and Problem with programming skill in general
There are a number of skills/techniques/experiance that will help with Leetcode style problems, specifically:
Being able to switch between imperative and functional (recursive) forms - sometimes one ...
1
vote
Leetcode: 2327. Number of People Aware of a Secret and Problem with programming skill in general
It sounds like you're not happy with the solutions you're coming up with. Even when they work they aren't fast enough to make you happy. Keep demanding perfection and you're sure to maintain your ...
1
vote
Accepted
Evolving thought process and design thinking
How would you implement a StringBuilder class from scratch?
By thinking very seriously about why I have to implement StringBuilder from scratch.
The proper reaction to that question is to ask "why?"...
1
vote
How to formally figure out the best design based on the informal user's description of their needs?
You have found the nicest way to do it: discuss with the customer, build something, discuss and change it until the solution is clear. Basically, whenever the problem can be solved solo, do it like ...
1
vote
How to formally figure out the best design based on the informal user's description of their needs?
I believe you are looking for the term Requirements engineering. Do not confuse with a phase of the joke※ software methodology known as waterfall (1956).
Iterative and incremental development is just ...
1
vote
Why is studying a Lisp interpreter in lisp so important?
A Lisp interpreter written in Lisp can be given as a weekly or even overnight homework assignment. Whereas making a from-scratch interpreted language would be more of a semester project.
A Lisp ...
1
vote
How to ask a programmer a question without getting "Why" as the answer
Programmers are "hard-wired" to solve problems.
Good programmers will try to solve the "right" problems.
Just supplying what someone is asking for is [often] the wrong problem to solve.
In the ...
1
vote
Is it necessary to understand what's happening at the hardware level to be a good programmer?
It depends on the domain. Are you writing an operating system kernel? Then yes, you need a pretty deep understanding of the underlying hardware level. Are you writing a web application in React? You ...
1
vote
Is it necessary to understand what's happening at the hardware level to be a good programmer?
It is necessary to have an idea of what kind of hardware you are targeting, and how that hardware works if you want to write code which has high performance.
An example for this is coding a Multi-core ...
1
vote
At what point does "constructive" criticism of your code become unhelpful?
If your lead developer reviews your code on the weekend, then normally you would read that review on Monday morning, apply the required changes, submit them for review again, and when everything is ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
self-improvement × 237learning × 38
programming-practices × 21
productivity × 16
skills × 15
programming-languages × 14
development-process × 12
algorithms × 11
education × 9
design × 8
teamwork × 8
books × 8
experience × 8
java × 6
junior-programmer × 6
web-development × 5
project-management × 5
open-source × 5
refactoring × 5
c# × 4
c × 4
data-structures × 4
language-agnostic × 4
computer-science × 4
design-patterns × 3