Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
Yes, tools used by developers are on topic here From the top of the front page (emphasis mine): General Q&A about programming, scripting, software design & architecture, process, tools,...
Answer
#2: Post edited
- ## Yes, tools used by developers are on topic here
- From the top of the front page (emphasis mine):
- > General Q&A about programming, scripting, software design & architecture, process, **tools**, testing, and more.
- ## Responses to the finer details of the question
- ### Understanding computers is not necessary for starting to learn programming
- Different programming languages require understanding of different things. A C programmer may have a certain mental model of memory layout, which a Python programmer can do without due to the abstractions provided by the Python language. As they learn more, the Python programmer may find that they need to think more about how the machine works, in order to achieve things they could not achieve as a beginner. As the C programmer learns more, they may find that their mental model of memory layout turns out to be a sometimes misleading approximation, which needs to be modified for more advanced work.
- This community is for helping people who are developing software, at any level and in any programming language.
- ### Confusion can happen even for someone familiar with the terminal
The question linked as an example, asking why `pip install` doesn't work in the REPL doesn't seem that surprising to me. Even for someone familiar with the terminal, it isn't immediately obvious to me why PIP couldn't have been written in Python as a function. The fact that PIP happens to be a terminal command seems more like a fashion choice than an inevitable conclusion.- The command doesn't look like a Python function, due to the lack of parentheses, but overlooking that could result from being a Python beginner, rather than from being a terminal beginner. *(Also, the question is from only 3 years after the release of Python 3, when most Python programmers were still using Python 2, which used `print "hello"` rather than `print("hello")`, making it even more feasible to mistake a terminal command for a Python command.)*
- Also bear in mind that if Python is not someone's first programming language, installing using the terminal may be surprising. For example, someone coming to Python from R may expect all packages to be installed using functions.
- I wouldn't want to assume that a question is beginner level, and I'd want beginner level questions to be welcomed in any case.
- ### Askers don't know what their question is about
- The example mistaking a terminal command for a Python command demonstrates that the asker did not realise they were asking a terminal question. I wouldn't want to exclude a question because the answer happens to be "use the terminal" any more than I would want to exclude a question because the answer happens to be "there's a typo". Either way, the question is still about programming.
- Even when the question is explicitly about the terminal, it's on topic here if it relates to software development.
- ### There is not a line between different communities
- Something can be on topic in more than one community. I could ask a question about a recipe on either Cooking or Writing, depending on whether I want culinary feedback or grammatical feedback. Similarly, someone trying to use existing Python software may ask on Power Users for help in getting it running, using the terminal, while someone trying to modify that same Python software may ask here on Software Development for help in using the terminal during testing.
- Generally, rather than ask "Which community does this question belong in?" I would prefer to ask "Which community does this asker want answers from?".
- ## Yes, tools used by developers are on topic here
- From the top of the front page (emphasis mine):
- > General Q&A about programming, scripting, software design & architecture, process, **tools**, testing, and more.
- ## Responses to the finer details of the question
- ### Understanding computers is not necessary for starting to learn programming
- Different programming languages require understanding of different things. A C programmer may have a certain mental model of memory layout, which a Python programmer can do without due to the abstractions provided by the Python language. As they learn more, the Python programmer may find that they need to think more about how the machine works, in order to achieve things they could not achieve as a beginner. As the C programmer learns more, they may find that their mental model of memory layout turns out to be a sometimes misleading approximation, which needs to be modified for more advanced work.
- This community is for helping people who are developing software, at any level and in any programming language.
- ### Confusion can happen even for someone familiar with the terminal
- The question linked as an example, asking why `pip install` doesn't work in the REPL doesn't seem that surprising to me. Even for someone familiar with the terminal, it isn't immediately obvious to me why PIP couldn't have been written in Python as a function. The fact that PIP happens to be a terminal command seems more like an arbitrary choice than an inevitable conclusion.
- The command doesn't look like a Python function, due to the lack of parentheses, but overlooking that could result from being a Python beginner, rather than from being a terminal beginner. *(Also, the question is from only 3 years after the release of Python 3, when most Python programmers were still using Python 2, which used `print "hello"` rather than `print("hello")`, making it even more feasible to mistake a terminal command for a Python command.)*
- Also bear in mind that if Python is not someone's first programming language, installing using the terminal may be surprising. For example, someone coming to Python from R may expect all packages to be installed using functions.
- I wouldn't want to assume that a question is beginner level, and I'd want beginner level questions to be welcomed in any case.
- ### Askers don't know what their question is about
- The example mistaking a terminal command for a Python command demonstrates that the asker did not realise they were asking a terminal question. I wouldn't want to exclude a question because the answer happens to be "use the terminal" any more than I would want to exclude a question because the answer happens to be "there's a typo". Either way, the question is still about programming.
- Even when the question is explicitly about the terminal, it's on topic here if it relates to software development.
- ### There is not a line between different communities
- Something can be on topic in more than one community. I could ask a question about a recipe on either Cooking or Writing, depending on whether I want culinary feedback or grammatical feedback. Similarly, someone trying to use existing Python software may ask on Power Users for help in getting it running, using the terminal, while someone trying to modify that same Python software may ask here on Software Development for help in using the terminal during testing.
- Generally, rather than ask "Which community does this question belong in?" I would prefer to ask "Which community does this asker want answers from?".
#1: Initial revision
## Yes, tools used by developers are on topic here From the top of the front page (emphasis mine): > General Q&A about programming, scripting, software design & architecture, process, **tools**, testing, and more. ## Responses to the finer details of the question ### Understanding computers is not necessary for starting to learn programming Different programming languages require understanding of different things. A C programmer may have a certain mental model of memory layout, which a Python programmer can do without due to the abstractions provided by the Python language. As they learn more, the Python programmer may find that they need to think more about how the machine works, in order to achieve things they could not achieve as a beginner. As the C programmer learns more, they may find that their mental model of memory layout turns out to be a sometimes misleading approximation, which needs to be modified for more advanced work. This community is for helping people who are developing software, at any level and in any programming language. ### Confusion can happen even for someone familiar with the terminal The question linked as an example, asking why `pip install` doesn't work in the REPL doesn't seem that surprising to me. Even for someone familiar with the terminal, it isn't immediately obvious to me why PIP couldn't have been written in Python as a function. The fact that PIP happens to be a terminal command seems more like a fashion choice than an inevitable conclusion. The command doesn't look like a Python function, due to the lack of parentheses, but overlooking that could result from being a Python beginner, rather than from being a terminal beginner. *(Also, the question is from only 3 years after the release of Python 3, when most Python programmers were still using Python 2, which used `print "hello"` rather than `print("hello")`, making it even more feasible to mistake a terminal command for a Python command.)* Also bear in mind that if Python is not someone's first programming language, installing using the terminal may be surprising. For example, someone coming to Python from R may expect all packages to be installed using functions. I wouldn't want to assume that a question is beginner level, and I'd want beginner level questions to be welcomed in any case. ### Askers don't know what their question is about The example mistaking a terminal command for a Python command demonstrates that the asker did not realise they were asking a terminal question. I wouldn't want to exclude a question because the answer happens to be "use the terminal" any more than I would want to exclude a question because the answer happens to be "there's a typo". Either way, the question is still about programming. Even when the question is explicitly about the terminal, it's on topic here if it relates to software development. ### There is not a line between different communities Something can be on topic in more than one community. I could ask a question about a recipe on either Cooking or Writing, depending on whether I want culinary feedback or grammatical feedback. Similarly, someone trying to use existing Python software may ask on Power Users for help in getting it running, using the terminal, while someone trying to modify that same Python software may ask here on Software Development for help in using the terminal during testing. Generally, rather than ask "Which community does this question belong in?" I would prefer to ask "Which community does this asker want answers from?".