Skip to content

Commit 090c72e

Browse files
committed
added some infos on the time spent with programming
1 parent 60054bb commit 090c72e

File tree

2 files changed

+33
-4
lines changed

2 files changed

+33
-4
lines changed

bibliography/bibliography.bib

+20
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,7 @@ @string { p_springer_verlag
612612
@string { p_story_needle = "{Story Needle}" }
613613
@string { p_taylor_and_francis = "{Taylor and Francis~Ltd.}" }
614614
@string { p_teubner_b_g = "{B.~G.~Teubner}" }
615+
@string { p_tidelift = "{Tidelift,~Inc.}" }
615616
@string { p_typis_academiae = "{Typis Academiae}" }
616617
@string { p_unicode_consortium = "{The Unicode Consortium}" }
617618
@string { p_universidad_del_pais_vasco = "{{Universidad del Pa{\'i}s Vasco} / {Euskal Herriko Unibertsitatea}}" }
@@ -705,6 +706,7 @@ @string { pa_springer_science_and_business
705706
@string { pa_springer_verlag = l_germany_heidelberg }
706707
@string { pa_taylor_and_francis = l_uk_london }
707708
@string { pa_teubner_b_g = l_germany_leipzig }
709+
@string { pa_tidelift = l_usa_boston }
708710
@string { pa_typis_academiae = l_russia_petropolis }
709711
@string { pa_unicode_consortium = l_usa_south_san_francisco }
710712
@string { pa_universidad_del_pais_vasco = l_spain_leioa }
@@ -1146,6 +1148,15 @@ @inbook{APM1991TOEAP
11461148
doi = {10.1007/978-1-4419-8552-1_8},
11471149
}
11481150

1151+
@book{AS2019DS2OSRP,
1152+
title = {Developer Survey~2019:~Open Source Runtime Pains},
1153+
publisher = p_active_state,
1154+
address = pa_active_state,
1155+
date = {2019-04-30},
1156+
url = {https://cdn.activestate.com/wp-content/uploads/2019/05/ActiveState-Developer-Survey-2019-Open-Source-Runtime-Pains.pdf},
1157+
urldate = {2024-12-29},
1158+
}
1159+
11491160
@techreport{ASA1963ASCII,
11501161
title = {American Standard Code for Information Interchange~{(ASCII~1963)}},
11511162
date = {1963-06-17},
@@ -3308,6 +3319,15 @@ @article{T1999TLE
33083319
doi = {10.1145/299157.299165},
33093320
}
33103321

3322+
@book{T2019MOSWBFDHOT2TMOSS,
3323+
title = {Making Open Source Work Better for Developers:~Highlights of the 2019 Tidelift Managed Open Source Survey},
3324+
date = {2019-06},
3325+
publisher = p_tidelift,
3326+
address = pa_tidelift,
3327+
url = {https://tidelift.com/subscription/managed-open-source-survey},
3328+
urldate = {2024-12-29},
3329+
}
3330+
33113331
@book{T2024BGAGVCPMATFTND,
33123332
author = a_tsitoara_mariot,
33133333
title = {Beginning \git\ and \github:~{V}ersion Control, Project Management and Teamwork for the New Developer},

text/main/introduction/programming/programming.tex

+13-4
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
So you now have the file with the program code.
5151
The problem is solved.
5252

53-
Is that easy?
53+
Is it that easy?
5454
On one hand, you may wonder whether you made any mistake.
5555
We are people, we all make mistakes.
5656
The more complex the task we tackle, the more (program code) we write, the more likely it is that we make some small error somewhere.
@@ -61,20 +61,29 @@
6161
What if other programs may later need to use/run it?
6262
Maybe it can access some sort of sensor measuring something, or maybe it can convert data from one file format to another one.
6363
Then, other programmers may need to be able to at least understand how to correctly run the program and what kind of input and output data it will expect or produce, respectively.
64+
You must \emph{document} your program clearly.
65+
If you write a package that offers functions that can be used by other programs, there must be annotations that clearly explain what kind of input and output datatypes these functions accept and produce, respectively.
6466

6567
What if this program is going to be needed for the next ten or so years?
6668
Maybe it could eventually become necessary to add new functionality?
6769
Maybe some of the software libraries you use get outdated and need to be replaced?
6870
There also are several situations in which a totally different person may need to work, read, modify, and improve \emph{your} code.
71+
They need to be able to read and understand your code easily.
72+
You cannot just write stuff down quickly, you cannot just produce one big soup of unformatted code.
73+
You need to both have good documentation and write clean and easy-to-read code.
6974

7075
Or maybe you are a researcher, using \python~3 to implement some algorithm and to run an experiment.
7176
In order to make your experiments and results replicable, you would probably want to publish your algorithm implementation together with the results.
72-
This only makes sense if your code is at least a bit readable.
77+
This, agin, only makes sense if your code is at least a bit readable.
78+
The names of variables and functions must be clear and understandable.
79+
The coding style should be consistent throughout all files and it should follow common conventions~\cite{PEP8}.
7380

7481
All of these things need to be considered when we learn how to program.
7582
Because you do not just \inQuotes{program,} you develop software.
83+
Indeed, a good share of programmers usually spend only about 50\%~of their time with programming~\cite{T2019MOSWBFDHOT2TMOSS,AS2019DS2OSRP}.
84+
Of course, we cannot cover all other topics related to software engineering in a programming course.
7685

77-
In typical courses, such aspects are ignored.
86+
However, in typical courses, such aspects are ignored entirely.
7887
In a typical course, you learn how to write a small program that solves a certain task.
7988
The task is usually simple, so the teachers are able to read your code even if you have ugliest style imaginable.
8089
Also, nobody is ever going to look at or use the programs you write as your homework again.
@@ -90,7 +99,7 @@
9099

91100
As a result, this will be a course which is very practice centered.
92101
We will learn programming the \emph{right} way.\footnote{%
93-
Well, at least, what I consider as the \emph{right} way.%
102+
Well, at least, what \emph{I} consider as the \emph{right} way.%
94103
}
95104
The downside of this approach is that we will sometimes go off on tangents in the text.
96105
While I am introducing variables in \cref{sec:variables}, for example, I will also explain how to use a static code analysis tool designed to find type errors in variable use.

0 commit comments

Comments
 (0)