It makes sense to know about your weakness and do something about it. Here are my known weaknesses uncovered during my time in Launch School.
1. I don't like to refactor my code
- Your first draft will not be perfect. It works but it may not be efficient/readable/best practices. You final code will almost always be better than your first draft.
- It is easier to separate the task between writing code that works and refactor later to make it efficient/readable/best practices.
- If you refactor your code often, over time you will discover your bad habits and change it.
2. I don't like to read other people's code
- There are more good programming practices in other people than in you (especially for beginners like me).
- To be good , you need to know more than one pathways to solve a programming problem (and there are always more than one way). Then you can judge their merit.
- Reason for dislikes
1. It is considerably harder to read code than to write one (because I can't 'feel' the code)
2. Ego (my code WORKS, why should I learn how others code)
- However, judgement needs to be applied. Not all codes needs to be incorporated into your arsenal.
- In the real world, you probably need to read a lot of code, it is good to start practicing it here.
3. I don't write pseudo-code as often as I like. I like to jump straight to coding
- If the problem can't be solve in pseudo-code/English, it can't be solve in code. It is good/easier/clearer to have a plan to guide your overall strategy especially in complex/hard problems
- Going straight to coding , tinkering around hoping it works have several problems
- If the code works, it is accidental, you learn little on why it works
- More often the code doesn't work , in which case you are wasting time.
- As Chris said, separating the task between solving the problem and converting your solution to code is good , because both are difficult task ( at least for me ).
4. Frustration grows when I can't solve a hard problem
- Negative emotions build up when I can't solve a hard problem after several tries. I get angry/frustrated.
- Getting emotional won't help me solve the problem!
- All you have to do is to remain cool headed and apply the problem solving skills systematically.
Frankly, there are no fancy way to solve these problem. All I have to do is to force myself to refactor my code, read other people's code and write pseudo-code more often. Hopefully it will get easier over time through practice.
These are my known weakness. It is good to know about them and overcome it because they are blocking my way to effective learning.
So what are your weaknesses ?
Additional Weakness
5. I don't go into very detail the first time I read the material.
- each and every time you go into a material, you should make sure you understand the details because it will help with your comprehensive and interest throughout the materials.
1. I don't like to refactor my code
- Your first draft will not be perfect. It works but it may not be efficient/readable/best practices. You final code will almost always be better than your first draft.
- It is easier to separate the task between writing code that works and refactor later to make it efficient/readable/best practices.
- If you refactor your code often, over time you will discover your bad habits and change it.
2. I don't like to read other people's code
- There are more good programming practices in other people than in you (especially for beginners like me).
- To be good , you need to know more than one pathways to solve a programming problem (and there are always more than one way). Then you can judge their merit.
- Reason for dislikes
1. It is considerably harder to read code than to write one (because I can't 'feel' the code)
2. Ego (my code WORKS, why should I learn how others code)
- However, judgement needs to be applied. Not all codes needs to be incorporated into your arsenal.
- In the real world, you probably need to read a lot of code, it is good to start practicing it here.
3. I don't write pseudo-code as often as I like. I like to jump straight to coding
- If the problem can't be solve in pseudo-code/English, it can't be solve in code. It is good/easier/clearer to have a plan to guide your overall strategy especially in complex/hard problems
- Going straight to coding , tinkering around hoping it works have several problems
- If the code works, it is accidental, you learn little on why it works
- More often the code doesn't work , in which case you are wasting time.
- As Chris said, separating the task between solving the problem and converting your solution to code is good , because both are difficult task ( at least for me ).
4. Frustration grows when I can't solve a hard problem
- Negative emotions build up when I can't solve a hard problem after several tries. I get angry/frustrated.
- Getting emotional won't help me solve the problem!
- All you have to do is to remain cool headed and apply the problem solving skills systematically.
Frankly, there are no fancy way to solve these problem. All I have to do is to force myself to refactor my code, read other people's code and write pseudo-code more often. Hopefully it will get easier over time through practice.
These are my known weakness. It is good to know about them and overcome it because they are blocking my way to effective learning.
So what are your weaknesses ?
Additional Weakness
5. I don't go into very detail the first time I read the material.
- each and every time you go into a material, you should make sure you understand the details because it will help with your comprehensive and interest throughout the materials.
Great post, Chian! I have struggled with a lot of these, too.
ReplyDeleteRecently I've been able to make a much better habit of note-taking/problem-solving in english prior to beginning to write my code.
Still need to work on reading more of others' code!