Skip to content

Commit 9366ee3

Browse files
committed
fixed links and fragments, added hugo build to git ignore
1 parent ca231c2 commit 9366ee3

File tree

90 files changed

+202
-214
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+202
-214
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ node_modules/
33
.vscode/
44
.DS_Store
55
bin/
6+
.hugo_build.lock

.hugo_build.lock

Whitespace-only changes.

Makefile

+5
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,8 @@ buildscripts:
22
go build -o bin/addshorts ./scripts/addshorts
33
go build -o bin/rmshorts ./scripts/rmshorts
44
go build -o bin/linkcheck ./scripts/linkcheck
5+
6+
windowsbuildscripts:
7+
go build -o bin\addshorts.exe .\scripts\addshorts
8+
go build -o bin\rmshorts.exe .\scripts\rmshorts
9+
go build -o bin\linkcheck.exe .\scripts\linkcheck

content/bitcoin/achieving-data-integrity-using-cryptography.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ Data integrity provides protection from a wide range of problems which involve d
2525

2626
## Solution - Checksum
2727

28-
A checksum solves all three of the potential data integrity problems listed above. A checksum is a [deterministic](/security/hash-functions/#Scrambles_Data_Deterministically) value derived from the message data and can be transmitted separately. This means checksum for a given message will always be the same.
28+
A checksum solves all three of the potential data integrity problems listed above. A checksum is a [deterministic](/cryptography/very-basic-intro-to-hash-functions-sha-256-md-5-etc/) value derived from the message data and can be transmitted separately. This means checksum for a given message will always be the same.
2929

3030
The receiver of a message can generate a checksum from the message, and if the generated checksum matches the one that was sent then the message couldn't have been tampered with.
3131

3232
It is important to note that if the medium over which the checksum was obtained is untrusted then a malicious actor _could_ alter the message and the checksum. It is common good practice to sign the checksum using a digital signature. The digital signature provides proof that the sender of the checksum is who they say they are.
3333

3434
## What Makes a Good Checksum?
3535

36-
There are many types of checksums, but the best checksums are typically [cryptographic hash functions](/security/hash-functions/). Hash functions which have the following properties make great checksums for validating data integrity:
36+
There are many types of checksums, but the best checksums are typically [cryptographic hash functions](/cryptography/very-basic-intro-to-hash-functions-sha-256-md-5-etc/). Hash functions which have the following properties make great checksums for validating data integrity:
3737

3838
- **Deterministic** - The hash of the same message will always be the same, no randomness
3939
- **Fast** - computing a checksum shouldn't use unnecessary resources (A [KDF](/cryptography/key-derivation-functions/) is an inefficient checksum)

content/bitcoin/base64-vs-base58-encoding.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ images:
99
- /img/Base64-vs-Base58-Encoding.webp
1010
---
1111

12-
Base64 is one of the most popular encoding formats for representing data. Have some binary data? Base64 encodes it for convenient readability and parsing. Base58 is just another encoding format (with 58 characters instead of 64, and has gained popularity largely due to Bitcoin and other cryptocurrencies. Also, if you came here confused, encryption and encoding are not the same! Take a look at this article for more [information on encryption vs encoding](/security/encoding-vs-encryption/).
12+
Base64 is one of the most popular encoding formats for representing data. Have some binary data? Base64 encodes it for convenient readability and parsing. Base58 is just another encoding format (with 58 characters instead of 64, and has gained popularity largely due to Bitcoin and other cryptocurrencies. Also, if you came here confused, encryption and encoding are not the same! Take a look at this article for more [information on encryption vs encoding](/cryptography/encoding-vs-encryption/).
1313

1414
When it comes to data _encoding_, there is typically a trade-off made between:
1515

content/clean-code/backend-ux-design.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ In other words, UX design is all about making it easy for your users to interact
2828

2929
Bad UX Design on Door
3030

31-
Sometimes it's easier to understand through bad examples. In the image above, a door with a handle is clearly labeled _push_. Why does the door have a handle at all if it can't be pulled? It's just bad UX and gives off mixed signals. If the builder had used push plates, there would be no need for words at all. [Simplicity breeds understanding](/clean-code/optimize-for-simplicity-first/).
31+
Sometimes it's easier to understand through bad examples. In the image above, a door with a handle is clearly labeled _push_. Why does the door have a handle at all if it can't be pulled? It's just bad UX and gives off mixed signals. If the builder had used push plates, there would be no need for words at all. [Simplicity breeds understanding](https://wagslane.dev/posts/optimize-for-simplicit-first/).
3232

3333
![](/img/push-panel-on-door.jpg)
3434

content/clean-code/practical-patterns-for-technical-writing.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ Technical documentation aims to break down a complex topic to make it understand
3535

3636
## Structuring Your Document Into Paragraphs
3737

38-
The system you are describing usually consists of multiple parts. The structure of your document should mimic these parts and nothing more. There are multiple studies on [how people read online](//www.nngroup.com/articles/how-people-read-online/%3E)). In short, people usually scan documents and do not read every sentence. Thus, t**he structure of your document should be self-explanatory**. If a reader needs to read a two-sided introduction to understand what the document is about, it is likely that you will lose their attention.
38+
The system you are describing usually consists of multiple parts. The structure of your document should mimic these parts and nothing more. There are multiple studies on [how people read online](www.nngroup.com/articles/how-people-read-online/%3E)). In short, people usually scan documents and do not read every sentence. Thus, t**he structure of your document should be self-explanatory**. If a reader needs to read a two-sided introduction to understand what the document is about, it is likely that you will lose their attention.
3939

40-
To make your structure easily understandable, it helps to ask the three Ws which I picked up in this [Google course on technical writing](//developers.google.com/tech-writing/overview%3E)).
40+
To make your structure easily understandable, it helps to ask the three Ws which I picked up in this [Google course on technical writing](developers.google.com/tech-writing/overview%3E)).
4141

4242
### The 3 W's
4343

content/clean-code/your-code-isnt-correct.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ There is a common trap that we fall into as developers, and it is believing that
1212

1313
## Different solutions optimize for for different things
1414

15-
You can only optimize for a few things at once, and there are always tradeoffs. Bloated memory consumption often makes way for faster computation speed. Simple syntax often leads to a lack of control or configurability. Different solutions to the same problem often optimize for slightly different things. I'm personally a fan of [optimizing for simplicity first](/clean-code/optimize-for-simplicity-first/), but "simple" means different things to different people.
15+
You can only optimize for a few things at once, and there are always tradeoffs. Bloated memory consumption often makes way for faster computation speed. Simple syntax often leads to a lack of control or configurability. Different solutions to the same problem often optimize for slightly different things. I'm personally a fan of [optimizing for simplicity first](https://wagslane.dev/posts/optimize-for-simplicit-first/), but "simple" means different things to different people.
1616

1717
In some cases, short and concise variable names might be simple. In some cases, a longer name with 4 or 5 words might be simpler.
1818

content/computer-science/comprehensive-guide-to-learn-computer-science-online.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Do you browse Reddit, Twitter, or Facebook in your free time? Make a small chang
6666

6767
### 3\. Interview and Get a Job Early (within the first year)
6868

69-
You are teaching yourself online, and the best way to catapult your education is to get an internship or entry-level job _as soon as you are able to_. Depending on the [kind of CS job](/jobs/highest-paying-computer-science-jobs/) you're interested in, you can start earlier or later, as some require more or less experience.
69+
You are teaching yourself online, and the best way to catapult your education is to get an internship or entry-level job _as soon as you are able to_. Depending on the [kind of CS job](/computer-science/highest-paying-computer-science-jobs/) you're interested in, you can start earlier or later, as some require more or less experience.
7070

7171
## Why Learn Computer Science at All?
7272

@@ -219,7 +219,7 @@ Personally, I recommend learning backend APIs using the Go programming language
219219

220220
#### Resources
221221

222-
- [Go Mastery - For Backend](https://boot.dev/go-mastery-course/)
222+
- [Go Mastery - For Backend](https://boot.dev/course/3b39d0f6-f944-4f1b-832d-a1daba32eda4/9e6acea2-8081-404d-9c34-3b5f677fa580/a74a68e0-9e85-4328-8868-5db0089ea11b)
223223
- [The Odin Project - Comprehensive Web Tutorials](https://www.theodinproject.com/)
224224

225225
#### Goals
@@ -256,7 +256,7 @@ Functional programming concepts and styles are especially important in web devel
256256

257257
#### Resources
258258

259-
- Boot.dev's [Intro to Functional Programming course](https://boot.dev/intro-to-functional-programming/)
259+
- Boot.dev's [Intro to Functional Programming course](https://boot.dev/course/b1459f0c-21eb-41e5-b7f3-562ef69d344c/65e3ea51-a0c4-41d6-9e4f-750942bcb0c9/f0d6c12b-fe3f-4920-a6a0-b2ae830b1658)
260260
- eBook: [Common Lisp: A Gentle Introduction to Symbolic Computation](http://www.cs.cmu.edu/~dst/LispBook/book.pdf)
261261

262262
#### Goals
@@ -367,7 +367,7 @@ Distributed systems is the study of programs that can efficiently take advantage
367367

368368
#### Resources
369369

370-
- Boot.dev's [Go Mastery course](https://boot.dev/go-mastery-course/)
370+
- Boot.dev's [Go Mastery course](https://boot.dev/course/3b39d0f6-f944-4f1b-832d-a1daba32eda4/9e6acea2-8081-404d-9c34-3b5f677fa580/a74a68e0-9e85-4328-8868-5db0089ea11b)
371371
- [Dixie State's Chord Assignment](http://cit.dixie.edu/cs/3410/asst_chord.php)
372372
- [Google's BigTable Research Paper - Read and take notes!](https://storage.googleapis.com/pub-tools-public-publication-data/pdf/68a74a85e1662fe02ff3967497f31fda7f32225c.pdf)
373373
- [Understanding Paxos](https://understandingpaxos.wordpress.com/)

content/computer-science/compsci-certificate-vs-degree.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ You might look at both and think there's no real difference between a certificat
3030

3131
A degree, as you probably know, is broad. It takes a lot of money and a lot of time to complete a degree in computer science, but what you get in return is a wide knowledge base, touching on several different topics of potential interest, and covering the fundamentals in a way that will make it easy for you to pick up specifics later. 
3232

33-
An [online certificate](/jobs/guide-to-certificate-in-computer-science/), meanwhile, is narrower in scope. It costs some time and some money to complete, and you get a more specific set of skills and experiences in return. There are certificates at every level: for beginners like me with SQL, all the way to certifying you for a very particular and specialized skill.
33+
An [online certificate](/computer-science/guide-to-certificate-in-computer-science/), meanwhile, is narrower in scope. It costs some time and some money to complete, and you get a more specific set of skills and experiences in return. There are certificates at every level: for beginners like me with SQL, all the way to certifying you for a very particular and specialized skill.
3434

3535
## Do you know exactly what you want to do in your programming job? 
3636

3737
When I set out to get my job, I had only a very vague idea of what I wanted to do. I only knew it was pretty entry-level and would require some coding knowledge. I noticed many of the job listings I was looking at, no matter what the job title said, had requirements that the applicant is familiar with a few programming languages like SQL, Python or R, so I ended up picking SQL as I already knew some R. 
3838

3939
If you have a more specific idea than me, like you know you want to be a data scientist or that you want to be a front-end engineer, you’ll have an easier time than I did picking a course to complete for a certificate. This is a much more highly specialized knowledge that you can use to prove your worth to employers.
4040

41-
If you’re still unsure and just know you want something programming-related, it’s worth spending some time deciding what it is you want to do before launching yourself into a degree or a certificate. You can do something similar to what I did, and look at several [CS job descriptions](/jobs/highest-paying-computer-science-jobs/) to see what universal skills would be handy to have or talk to any programmers you know today to see what they’d say. It might even be worth doing an “Intro to X” type course before you sink time and cash into a degree that might not end up being your passion.
41+
If you’re still unsure and just know you want something programming-related, it’s worth spending some time deciding what it is you want to do before launching yourself into a degree or a certificate. You can do something similar to what I did, and look at several [CS job descriptions](/computer-science/highest-paying-computer-science-jobs/) to see what universal skills would be handy to have or talk to any programmers you know today to see what they’d say. It might even be worth doing an “Intro to X” type course before you sink time and cash into a degree that might not end up being your passion.
4242

4343
## How much time and money do you have to learn computer science?
4444

content/computer-science/computer-science-resumes.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ images:
88
- /img/resume-on-clipboard-pexels.jpeg
99
---
1010

11-
It's really hard to get your foot in the door for engineering interviews, especially if you have no experience and are looking for an entry-level position. Often times, more experienced candidates looking to find a [higher-paying job](/jobs/highest-paying-computer-science-jobs/) can also have trouble. As an employer myself, I can tell you that one of the biggest mistakes I see in 75% of resumes is using a _visually boring template_. When I'm sifting through forty or fifty applicants, it's really easy for my eyes to glaze over. Think of your resume as your website landing page. You need to catch your employer's attention by calling out your biggest accomplishments and selling points at a glance.
11+
It's really hard to get your foot in the door for engineering interviews, especially if you have no experience and are looking for an entry-level position. Often times, more experienced candidates looking to find a [higher-paying job](/computer-science/highest-paying-computer-science-jobs/) can also have trouble. As an employer myself, I can tell you that one of the biggest mistakes I see in 75% of resumes is using a _visually boring template_. When I'm sifting through forty or fifty applicants, it's really easy for my eyes to glaze over. Think of your resume as your website landing page. You need to catch your employer's attention by calling out your biggest accomplishments and selling points at a glance.
1212

1313
A pile of hundreds of computer science resumes stands staunchly opposed to your bright coding future. To stand out in the crowd and land the interviews you'll need to get that dream job, you’ll need to write a _fantastic_ computer science resume.
1414

content/computer-science/computer-science-vs-software-engineering.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,10 @@ Because smaller colleges often provide more insight into a "standard" course loa
192192

193193
As you can see, there is a great deal of overlap in course load between the two disciplines.
194194

195-
The main difference between a [computer science degree or certificate](/jobs/guide-to-certificate-in-computer-science/) and a software engineering education is that computer science requires more high-level math and science classes, while the software engineering route includes more applied classes such as Unix/Linux and Web Design. If you can stick it out, most employers generally prefer a candidate with a computer science background, as software engineering principles can more easily be learned on the job.
195+
The main difference between a [computer science degree or certificate](/computer-science/guide-to-certificate-in-computer-science/) and a software engineering education is that computer science requires more high-level math and science classes, while the software engineering route includes more applied classes such as Unix/Linux and Web Design. If you can stick it out, most employers generally prefer a candidate with a computer science background, as software engineering principles can more easily be learned on the job.
196196

197197
## Titles and Salaries
198198

199-
When it comes right down to it, the job titles of "[Software Engineer](https://www.ziprecruiter.com/Salaries/Software-Engineer-Salary)" and "[Computer Scientist](https://www.ziprecruiter.com/Salaries/Computer-Scientist-Salary)" make comparable money with Software Engineers averaging $100,000/yr and Computer Scientists average $102,000/yr, at least in the United States. However, it's important to note that the job titles don't necessarily match the skillsets of the individuals performing them. Many software engineers, especially the highly-paid ones have also studied Computer Science, and it's almost impossible to find a computer scientist who isn't well versed in the best software engineering practices. For a full list of CS salary breakdowns by job title, we have a [separate article that goes into the details](/jobs/highest-paying-computer-science-jobs/).
199+
When it comes right down to it, the job titles of "[Software Engineer](https://www.ziprecruiter.com/Salaries/Software-Engineer-Salary)" and "[Computer Scientist](https://www.ziprecruiter.com/Salaries/Computer-Scientist-Salary)" make comparable money with Software Engineers averaging $100,000/yr and Computer Scientists average $102,000/yr, at least in the United States. However, it's important to note that the job titles don't necessarily match the skillsets of the individuals performing them. Many software engineers, especially the highly-paid ones have also studied Computer Science, and it's almost impossible to find a computer scientist who isn't well versed in the best software engineering practices. For a full list of CS salary breakdowns by job title, we have a [separate article that goes into the details](/computer-science/highest-paying-computer-science-jobs/).
200200

201201
Additionally, Software Engineers, being of a more practical variety of skilled laborers, are more likely to come into increasingly high demand as technology continues to move forward. In practice, both Computer Science and Software Engineering are excellent fields to enter into, if one has a love of computers, coding, and mathematics. The best part is, you don't even need to go to a university, you can [learn both computer science and software engineering completely online](/computer-science/comprehensive-guide-to-learn-computer-science-online/).

content/computer-science/guide-to-certificate-in-computer-science.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ First, include ease of completion in your criteria for selecting a certificate i
7272

7373
Second, motivate yourself. Especially if you’re at the beginning of your coding career, it can be really demoralizing to apply to jobs and constantly be put through the rejection mill. Getting a computer science certificate is going to help you in that regard. Maybe you can motivate yourself financially, like promising yourself a gift if you finish. Maybe you can let other people know you’re working on this goal, so they can monitor and cheer you on. There are plenty of ways to motivate yourself to finish the computer science certificate - you just have to find the right one.
7474

75-
Both internal and external sources of drive will be necessary to get this done. If you can plan ahead and both pick out a course that aligns to your learning and working style and identify a couple of motivational tricks you can use, the easier it’ll be to actually complete the certificate in computer science that’s going to land you your [dream programming job](/jobs/highest-paying-computer-science-jobs/).
75+
Both internal and external sources of drive will be necessary to get this done. If you can plan ahead and both pick out a course that aligns to your learning and working style and identify a couple of motivational tricks you can use, the easier it’ll be to actually complete the certificate in computer science that’s going to land you your [dream programming job](/computer-science/highest-paying-computer-science-jobs/).
7676

7777
## Step 5: Do the work.
7878

0 commit comments

Comments
 (0)