You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/bitcoin/achieving-data-integrity-using-cryptography.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -25,15 +25,15 @@ Data integrity provides protection from a wide range of problems which involve d
25
25
26
26
## Solution - Checksum
27
27
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.
29
29
30
30
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.
31
31
32
32
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.
33
33
34
34
## What Makes a Good Checksum?
35
35
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:
37
37
38
38
-**Deterministic** - The hash of the same message will always be the same, no randomness
39
39
-**Fast** - computing a checksum shouldn't use unnecessary resources (A [KDF](/cryptography/key-derivation-functions/) is an inefficient checksum)
Copy file name to clipboardExpand all lines: content/bitcoin/base64-vs-base58-encoding.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ images:
9
9
- /img/Base64-vs-Base58-Encoding.webp
10
10
---
11
11
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/).
13
13
14
14
When it comes to data _encoding_, there is typically a trade-off made between:
Copy file name to clipboardExpand all lines: content/clean-code/backend-ux-design.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ In other words, UX design is all about making it easy for your users to interact
28
28
29
29
Bad UX Design on Door
30
30
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/).
Copy file name to clipboardExpand all lines: content/clean-code/practical-patterns-for-technical-writing.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -35,9 +35,9 @@ Technical documentation aims to break down a complex topic to make it understand
35
35
36
36
## Structuring Your Document Into Paragraphs
37
37
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.
39
39
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)).
Copy file name to clipboardExpand all lines: content/clean-code/your-code-isnt-correct.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ There is a common trap that we fall into as developers, and it is believing that
12
12
13
13
## Different solutions optimize for for different things
14
14
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.
16
16
17
17
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.
Copy file name to clipboardExpand all lines: content/computer-science/comprehensive-guide-to-learn-computer-science-online.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ Do you browse Reddit, Twitter, or Facebook in your free time? Make a small chang
66
66
67
67
### 3\. Interview and Get a Job Early (within the first year)
68
68
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.
70
70
71
71
## Why Learn Computer Science at All?
72
72
@@ -219,7 +219,7 @@ Personally, I recommend learning backend APIs using the Go programming language
219
219
220
220
#### Resources
221
221
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)
223
223
-[The Odin Project - Comprehensive Web Tutorials](https://www.theodinproject.com/)
224
224
225
225
#### Goals
@@ -256,7 +256,7 @@ Functional programming concepts and styles are especially important in web devel
256
256
257
257
#### Resources
258
258
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)
260
260
- eBook: [Common Lisp: A Gentle Introduction to Symbolic Computation](http://www.cs.cmu.edu/~dst/LispBook/book.pdf)
261
261
262
262
#### Goals
@@ -367,7 +367,7 @@ Distributed systems is the study of programs that can efficiently take advantage
-[Google's BigTable Research Paper - Read and take notes!](https://storage.googleapis.com/pub-tools-public-publication-data/pdf/68a74a85e1662fe02ff3967497f31fda7f32225c.pdf)
Copy file name to clipboardExpand all lines: content/computer-science/compsci-certificate-vs-degree.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -30,15 +30,15 @@ You might look at both and think there's no real difference between a certificat
30
30
31
31
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.
32
32
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.
34
34
35
35
## Do you know exactly what you want to do in your programming job?
36
36
37
37
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.
38
38
39
39
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.
40
40
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.
42
42
43
43
## How much time and money do you have to learn computer science?
Copy file name to clipboardExpand all lines: content/computer-science/computer-science-resumes.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ images:
8
8
- /img/resume-on-clipboard-pexels.jpeg
9
9
---
10
10
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.
12
12
13
13
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.
Copy file name to clipboardExpand all lines: content/computer-science/computer-science-vs-software-engineering.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -192,10 +192,10 @@ Because smaller colleges often provide more insight into a "standard" course loa
192
192
193
193
As you can see, there is a great deal of overlap in course load between the two disciplines.
194
194
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.
196
196
197
197
## Titles and Salaries
198
198
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/).
200
200
201
201
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/).
Copy file name to clipboardExpand all lines: content/computer-science/guide-to-certificate-in-computer-science.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,7 @@ First, include ease of completion in your criteria for selecting a certificate i
72
72
73
73
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.
74
74
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/).
0 commit comments