The document provides tips for systematically breaking down a problem into steps before attempting to solve it. It recommends identifying the overall problem and goal, breaking the problem into smaller steps, working through examples using pseudocode, coding each step individually while testing, and seeking help if stuck on concepts rather than searching for full solutions. The key is to think through inputs, outputs, necessary logic and tools to transform one to the other like a computer in a step-by-step manner.
Importance of UX Design in PM by Dhantra Studio Founder & CEOProduct School
Main Takeaways:
1. UX Design principles and how it helps in creating good products
2. Importance of UX in developing unique customer experiences and habits
3. Q&A session
In workshop we coded a kata in Java, starting from a given scaffold, so we could focus on the fundamental steps of TDD. We learned how to practice our TDD skills; how to drive the code and design decisions with tests; how to refactor the code with no fear; how to keep control of design. Lab was organized in 4 sessions of 25 minutes: an intro to TDD, then 2 sessions of coding and the final retrospective for share your feedback.
How to Apply Design Thinking to Your Product by Pluralsight PMProduct School
Product Management is a multi-faceted discipline requiring the use of a broad range of skills and frameworks. At times, some of these frameworks may seem great in theory, but hard to apply in practice. In this talk, Keisha presented a real world application of Design Thinking and discussed how the type of research you perform can be a game-changer for the insights you uncover.
Importance of UX Design in PM by Dhantra Studio Founder & CEOProduct School
Main Takeaways:
1. UX Design principles and how it helps in creating good products
2. Importance of UX in developing unique customer experiences and habits
3. Q&A session
In workshop we coded a kata in Java, starting from a given scaffold, so we could focus on the fundamental steps of TDD. We learned how to practice our TDD skills; how to drive the code and design decisions with tests; how to refactor the code with no fear; how to keep control of design. Lab was organized in 4 sessions of 25 minutes: an intro to TDD, then 2 sessions of coding and the final retrospective for share your feedback.
How to Apply Design Thinking to Your Product by Pluralsight PMProduct School
Product Management is a multi-faceted discipline requiring the use of a broad range of skills and frameworks. At times, some of these frameworks may seem great in theory, but hard to apply in practice. In this talk, Keisha presented a real world application of Design Thinking and discussed how the type of research you perform can be a game-changer for the insights you uncover.
The obstacles of developer productivity.pptxLaurence Chen
The obstacles of developer productivity talks about the application programmer's productivity from 4 different aspects:
1. Premature optimization
2. Software complexity
3. Uncertainty
4. Culture issues
Video https://www.youtube.com/watch?v=ucZsaQ2Evtw&list=PLEhSHDVBMPO39WMeZPiUBQSNFQ_3x7hba&index=18
Exploring alternatives is part of the design process.
TDD is a way to do incremental design, or design while you write code.
So can we use TDD to explore design alternatives?
Turns out, I've seen a lot of design exploration during the 30+ code retreats I facilitated and attended. While I don't have a definite proof, it seems that TDD could be used for this purpose.
INROADS Career Session on January 3, 2014. INROADS prepares talented minority youth for corporate and community leadership, learn more at http://www.inroads.org.
You are a clever and talented person. You create beautiful designs, or perhaps you can architect a system that even a cat could use. Your peers adore you. Your clients love you. But (until now) you haven't *&^#^ been able to make Git bend to your will. It makes you angry inside that you have to ask your co-worker, again, for that *&^#^ command to share your work.
It's not you. It's Git. Promise.
We'll kick off this session with an explanation of why Git is so freaking hard to learn. Then we'll flip the tables and make YOU (not Git) the centre of attention. You'll learn how to define, and sketch out how version control works, using terms and scenarios that make sense to you. Yup, sketch. On paper. (Tablets and other electronic devices will be allowed, as long as you promise not to get distracted choosing the perfect shade for rage.) To this diagram you'll layer on the common Git commands that are used regularly by efficient Git-using teams. It'll be the ultimate cheat sheet, and specific to your job. If you think this sounds complicated, it's not! Your fearless leader, Emma Jane, has been successfully teaching people how-to-tech for over a decade. She is well known for her non-technical metaphors which ease learners into complex, work-related topics that previously felt inaccessible.
Yes, this is an introductory session. No, you don't have to have Git installed to attend. You don't even need to know where the command line is on your computer. Yes, you should attend if you've been embarrassed to ask team-mates what Git command you used three weeks ago to upload your work...just in case you're supposed to remember.
If you're a super-human Git fanatic who is frustrated by people who don't just "git it", this session is also for you. You'll learn new ways to effectively communicate your ever-loving Git, and you may develop a deeper understanding of why your previous attempts to explain Git have failed.
Ace the Tech Interviews - www.hiredintech.comAnton Dimitrov
Are you scared of programming interviews at top tech companies like Google, Microsoft, Amazon and Facebook?
If you feel nervous or don't know how to solve hard problems, our team has answers for you.
We worked at several top tech companies like Google, Microsoft and Nvidia. Learn more about us and our services at www.hiredintech.com
This is a presentation we gave to students from Berkeley University, Santa Barbara University, University of Edinburg, EPFL - Switzerland and others. It covers things from building a perfect resume, through getting more interview invites to answering technical and non-technical question at the interviews at top software companies.
Let us know what you think or if you have any questions.
Grokking Techtalk #45: First Principles ThinkingGrokking VN
Bạn có từng nghe ai đó nói về First Principles Thinking? Nó là gì và engineers chúng ta có thể sử dụng như thế nào cho công việc của mình?
---
First Principles Thinking là một trong những phương pháp mà chúng ta có thể vận dụng để phân chia những vấn đề phức tạp thành những vấn đề nhỏ và cơ bản hơn có thể giải quyết được, cuối cùng tổng hợp lại thành một giải pháp có thể giải quyết được vấn đề phức tạp ban đầu.
Nối tiếp về chủ đề Problem Solving, trong Techtalk lần này, Grokking Vietnam cùng Gambaru sẽ mang đến cho các bạn thêm một góc nhìn về tư duy giải quyết vấn đề. Chúng ta sẽ cùng gặp gỡ anh Hùng Đoàn - exFacebook và hiện đang là Software Engineer tại Coda và cùng nhau thảo luận sâu hơn về chủ đề First Principles Thinking này nhé.
Nội dung bài talk:
* Analogy thinking
* Breaking a problem space down to its building blocks
* Techniques to arrive at first principles thinking
* Application in Programming
---
Ngôn ngữ: Tiếng Việt
---
Speaker:
- Hùng Đoàn - Software Engineer @ Coda.io, Ex-Facebook SWE
Anh Hùng có nhiều năm kinh nghiệm trong các lĩnh vực thuộc software engineering. Anh từng thi quốc gia tin học quốc tế và đoạt huy chương vào 2007
Handouts to help you prepare for programming/coding/algorithm interview + behavioral interview questions + product management questions, especially at the top tech companies.
ADHD Discourse and Navigation of Identity/SubjectivityRona Chong
Preparation for a briefing on findings from independent research on discourse on ADHD and ADHD diagnosis (done as part of undergrad thesis for Scripps/Pomona College).
The obstacles of developer productivity.pptxLaurence Chen
The obstacles of developer productivity talks about the application programmer's productivity from 4 different aspects:
1. Premature optimization
2. Software complexity
3. Uncertainty
4. Culture issues
Video https://www.youtube.com/watch?v=ucZsaQ2Evtw&list=PLEhSHDVBMPO39WMeZPiUBQSNFQ_3x7hba&index=18
Exploring alternatives is part of the design process.
TDD is a way to do incremental design, or design while you write code.
So can we use TDD to explore design alternatives?
Turns out, I've seen a lot of design exploration during the 30+ code retreats I facilitated and attended. While I don't have a definite proof, it seems that TDD could be used for this purpose.
INROADS Career Session on January 3, 2014. INROADS prepares talented minority youth for corporate and community leadership, learn more at http://www.inroads.org.
You are a clever and talented person. You create beautiful designs, or perhaps you can architect a system that even a cat could use. Your peers adore you. Your clients love you. But (until now) you haven't *&^#^ been able to make Git bend to your will. It makes you angry inside that you have to ask your co-worker, again, for that *&^#^ command to share your work.
It's not you. It's Git. Promise.
We'll kick off this session with an explanation of why Git is so freaking hard to learn. Then we'll flip the tables and make YOU (not Git) the centre of attention. You'll learn how to define, and sketch out how version control works, using terms and scenarios that make sense to you. Yup, sketch. On paper. (Tablets and other electronic devices will be allowed, as long as you promise not to get distracted choosing the perfect shade for rage.) To this diagram you'll layer on the common Git commands that are used regularly by efficient Git-using teams. It'll be the ultimate cheat sheet, and specific to your job. If you think this sounds complicated, it's not! Your fearless leader, Emma Jane, has been successfully teaching people how-to-tech for over a decade. She is well known for her non-technical metaphors which ease learners into complex, work-related topics that previously felt inaccessible.
Yes, this is an introductory session. No, you don't have to have Git installed to attend. You don't even need to know where the command line is on your computer. Yes, you should attend if you've been embarrassed to ask team-mates what Git command you used three weeks ago to upload your work...just in case you're supposed to remember.
If you're a super-human Git fanatic who is frustrated by people who don't just "git it", this session is also for you. You'll learn new ways to effectively communicate your ever-loving Git, and you may develop a deeper understanding of why your previous attempts to explain Git have failed.
Ace the Tech Interviews - www.hiredintech.comAnton Dimitrov
Are you scared of programming interviews at top tech companies like Google, Microsoft, Amazon and Facebook?
If you feel nervous or don't know how to solve hard problems, our team has answers for you.
We worked at several top tech companies like Google, Microsoft and Nvidia. Learn more about us and our services at www.hiredintech.com
This is a presentation we gave to students from Berkeley University, Santa Barbara University, University of Edinburg, EPFL - Switzerland and others. It covers things from building a perfect resume, through getting more interview invites to answering technical and non-technical question at the interviews at top software companies.
Let us know what you think or if you have any questions.
Grokking Techtalk #45: First Principles ThinkingGrokking VN
Bạn có từng nghe ai đó nói về First Principles Thinking? Nó là gì và engineers chúng ta có thể sử dụng như thế nào cho công việc của mình?
---
First Principles Thinking là một trong những phương pháp mà chúng ta có thể vận dụng để phân chia những vấn đề phức tạp thành những vấn đề nhỏ và cơ bản hơn có thể giải quyết được, cuối cùng tổng hợp lại thành một giải pháp có thể giải quyết được vấn đề phức tạp ban đầu.
Nối tiếp về chủ đề Problem Solving, trong Techtalk lần này, Grokking Vietnam cùng Gambaru sẽ mang đến cho các bạn thêm một góc nhìn về tư duy giải quyết vấn đề. Chúng ta sẽ cùng gặp gỡ anh Hùng Đoàn - exFacebook và hiện đang là Software Engineer tại Coda và cùng nhau thảo luận sâu hơn về chủ đề First Principles Thinking này nhé.
Nội dung bài talk:
* Analogy thinking
* Breaking a problem space down to its building blocks
* Techniques to arrive at first principles thinking
* Application in Programming
---
Ngôn ngữ: Tiếng Việt
---
Speaker:
- Hùng Đoàn - Software Engineer @ Coda.io, Ex-Facebook SWE
Anh Hùng có nhiều năm kinh nghiệm trong các lĩnh vực thuộc software engineering. Anh từng thi quốc gia tin học quốc tế và đoạt huy chương vào 2007
Handouts to help you prepare for programming/coding/algorithm interview + behavioral interview questions + product management questions, especially at the top tech companies.
ADHD Discourse and Navigation of Identity/SubjectivityRona Chong
Preparation for a briefing on findings from independent research on discourse on ADHD and ADHD diagnosis (done as part of undergrad thesis for Scripps/Pomona College).
The effect of color on bee pollination visitation to artificial flowers.Rona Chong
Brief student presentation on lab research studying the effect of color on bee pollination. Done as part of undergraduate studies at Scripps College/Keck Science Institute.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Online aptitude test management system project report.pdfKamal Acharya
The purpose of on-line aptitude test system is to take online test in an efficient manner and no time wasting for checking the paper. The main objective of on-line aptitude test system is to efficiently evaluate the candidate thoroughly through a fully automated system that not only saves lot of time but also gives fast results. For students they give papers according to their convenience and time and there is no need of using extra thing like paper, pen etc. This can be used in educational institutions as well as in corporate world. Can be used anywhere any time as it is a web based application (user Location doesn’t matter). No restriction that examiner has to be present when the candidate takes the test.
Every time when lecturers/professors need to conduct examinations they have to sit down think about the questions and then create a whole new set of questions for each and every exam. In some cases the professor may want to give an open book online exam that is the student can take the exam any time anywhere, but the student might have to answer the questions in a limited time period. The professor may want to change the sequence of questions for every student. The problem that a student has is whenever a date for the exam is declared the student has to take it and there is no way he can take it at some other time. This project will create an interface for the examiner to create and store questions in a repository. It will also create an interface for the student to take examinations at his convenience and the questions and/or exams may be timed. Thereby creating an application which can be used by examiners and examinee’s simultaneously.
Examination System is very useful for Teachers/Professors. As in the teaching profession, you are responsible for writing question papers. In the conventional method, you write the question paper on paper, keep question papers separate from answers and all this information you have to keep in a locker to avoid unauthorized access. Using the Examination System you can create a question paper and everything will be written to a single exam file in encrypted format. You can set the General and Administrator password to avoid unauthorized access to your question paper. Every time you start the examination, the program shuffles all the questions and selects them randomly from the database, which reduces the chances of memorizing the questions.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
An Approach to Detecting Writing Styles Based on Clustering Techniquesambekarshweta25
An Approach to Detecting Writing Styles Based on Clustering Techniques
Authors:
-Devkinandan Jagtap
-Shweta Ambekar
-Harshit Singh
-Nakul Sharma (Assistant Professor)
Institution:
VIIT Pune, India
Abstract:
This paper proposes a system to differentiate between human-generated and AI-generated texts using stylometric analysis. The system analyzes text files and classifies writing styles by employing various clustering algorithms, such as k-means, k-means++, hierarchical, and DBSCAN. The effectiveness of these algorithms is measured using silhouette scores. The system successfully identifies distinct writing styles within documents, demonstrating its potential for plagiarism detection.
Introduction:
Stylometry, the study of linguistic and structural features in texts, is used for tasks like plagiarism detection, genre separation, and author verification. This paper leverages stylometric analysis to identify different writing styles and improve plagiarism detection methods.
Methodology:
The system includes data collection, preprocessing, feature extraction, dimensional reduction, machine learning models for clustering, and performance comparison using silhouette scores. Feature extraction focuses on lexical features, vocabulary richness, and readability scores. The study uses a small dataset of texts from various authors and employs algorithms like k-means, k-means++, hierarchical clustering, and DBSCAN for clustering.
Results:
Experiments show that the system effectively identifies writing styles, with silhouette scores indicating reasonable to strong clustering when k=2. As the number of clusters increases, the silhouette scores decrease, indicating a drop in accuracy. K-means and k-means++ perform similarly, while hierarchical clustering is less optimized.
Conclusion and Future Work:
The system works well for distinguishing writing styles with two clusters but becomes less accurate as the number of clusters increases. Future research could focus on adding more parameters and optimizing the methodology to improve accuracy with higher cluster values. This system can enhance existing plagiarism detection tools, especially in academic settings.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)MdTanvirMahtab2
This presentation is about the working procedure of Shahjalal Fertilizer Company Limited (SFCL). A Govt. owned Company of Bangladesh Chemical Industries Corporation under Ministry of Industries.
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Water billing management system project report.pdfKamal Acharya
Our project entitled “Water Billing Management System” aims is to generate Water bill with all the charges and penalty. Manual system that is employed is extremely laborious and quite inadequate. It only makes the process more difficult and hard.
The aim of our project is to develop a system that is meant to partially computerize the work performed in the Water Board like generating monthly Water bill, record of consuming unit of water, store record of the customer and previous unpaid record.
We used HTML/PHP as front end and MYSQL as back end for developing our project. HTML is primarily a visual design environment. We can create a android application by designing the form and that make up the user interface. Adding android application code to the form and the objects such as buttons and text boxes on them and adding any required support code in additional modular.
MySQL is free open source database that facilitates the effective management of the databases by connecting them to the software. It is a stable ,reliable and the powerful solution with the advanced features and advantages which are as follows: Data Security.MySQL is free open source database that facilitates the effective management of the databases by connecting them to the software.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
9. ● You don’t get a chance to reach a
solution on your own.
● You don’t necessarily understand
the example you see.
10.
11. Solution:
Don’t Google the
answer.
Google the concept.
(Google the answer as a last resort, and make sure you
understand & can reproduce the answer on your own)
(If you can’t, then ask for help.)
“What is a
linked list”
“C structures”
“Malloc”
“memory”
“How do you
store a string
in a node”
14. A set of steps:
● Identify: What is the problem? What is being requested, or the goal?
● Break the problem down into steps
● Pseudocode & work the problem out with example inputs.
● Coding: Go step by step. (Don’t code it all at once, and test each step).
● Something confusing you?
○ Do not look up THE solution.
○ Identify what you don’t know, then fix your knowledge gap.
● You’re stumped - but you’ve tried to break down the problem. Look up
a solution and take stock of what you missed.
● Take the time to understand each line of code you write.
● After help or looking up the answer, make sure you can reproduce the
solution on your own.
15. ● Think about input to output.
What inputs do you have? What are
their types?
What outputs do you want? What are
their types?
What tools do you have to transform
your input to output?
● Logic flow
● Mathematical operations
● Functions
16. A set of steps:
● Identify: What is the problem? What is being requested, or the goal?
● Break the problem down into steps
● Pseudocode & work the problem out with example inputs.
● Coding: Go step by step. (Don’t code it all at once, and test each step).
● Something confusing you?
○ Do not look up THE solution.
○ Identify what you don’t know, then fix your knowledge gap.
● You’re stumped - but you’ve tried to break down the problem. Look up
a solution and take stock of what you missed.
● Take the time to understand each line of code you write.
● After help or looking up the answer, make sure you can reproduce the
solution on your own.
In the spirit of peer learning, wanted to share my personal approach to coding problems.
Everyone’s approach is going to be different, but thought it would be good to exchange perspectives.
So this is an example of the type of awesome and cool projects we get at Holberton.
It says to write a function that allocates a new node and link it to a list.
So this is an example of the type of awesome and cool projects we get at Holberton.
It says to write a function that allocates a new node and link it to a list.
OK, that’s cool…
So sometimes, we get a primer on a new concept, but we still may not understand everything, because we haven’t dealt with it in detail yet, like “what is all of this”, “dont really know what to do”
When we’re new to a concept--maybe someone’s given us a primer on it, but we still haven’t gotten our hands dirty with it--it can seem a little overwhelmingPretty much like gibberish.
Like “what does it all mean”?
“Oh shit”
So what do we do at this point?
So what do we do? We can go Google it!
We could google, actually, “how to write a function to add a node in c”, and get the answer… which is pretty cool.
Except, I actually wouldn’t recommend doing this. Not because googling the exact solution is always absolutely wrong, but I would just be wary of Googling the answer right off the bat because there are a few pitfalls involved.
Why:
Googling the exact solution is not always absolutely wrong, but there are several pitfalls:
You don’t get a chance to practice or learn how to reach a solution on your own.
You find a solution but you don’t necessarily understand how it works.
The first issue is that
If you automatically look up the solution every time, you’re not giving yourself the chance to develop your solution by yourself. You can’t always depend on the solution or tutorial being available, so it’s important to be able to break a problem down yourself.
The other part is you may look at some code and think you understand it, but without going through the nitty gritty of it yourself, you lack a true understanding of the code. And then you might not be able to do it on your own,which can really hurt you down the road.
[In a job, you’ll come across problems that people haven’t done before. (For instance, some of us might have come across this when we did the shell).In a job interview, maybe you’ll be able to look online for a solution. But not being able to explain what your code does and how your code works will not impress.
As a lack of understanding builds up, you will lose more and more time to randomly changing things in your code and crossing your fingers/hoping it works.
If you force yourself to try to integrate of new concepts, the solution will come to you much more quickly. And, you’ll understand the solution, because you came up with it.]
The “I don’t really know what I’m doing” syndrome: potentially lovable, but not advisable
The goal is to move out of this zone, not stay in it.
It can be OK to look up the answer
But make sure you understand, then close the window and try it yourself.
What this starts to get at is the idea that we should try to break the problem down into parts and understand the problem, instead of looking up the answer right away.
So,
Parse the problem
Break it down systematically
Like a computer
Basically be like a computer, which is easier said than done, but we have a set of suggestions to help with that.
The first step is to identify the problem. As in, Really try and understand first what is being asked of you.
Then take that problem and break it down into steps
You don’t necessarily need to know how to do each step now, but you need to know what you are trying to do conceptually.
Pseudocoding helps define your plan of action (in a notebook).
And then you can start to figure out the how each of those steps can be achieved:
Something that I find helpful is trying to work out the problem with example inputs.
So actually, whenever we are given a problem, we know some sample inputs.
We can see them in terms of their type in the prototype; and we can see specific values our function is called with in the main function.
Helps me to think about what we start out with and what we want to end up with.
A lot of times a programming problem can be reduced to input and output, and a series of operations on the input to achieve the output.
So: input = Pt. A, output = Pt. B, tools = our path to get from Pt. A to Pt. B.
Input to output
Problems in programming can often be reduced to what you’re given, and what you need to produce
Try to think about input and output, and the series of operations needed to transform or use your input to reach the desired output. Think about what tools you have.
What inputs do you have? What are their types?
What outputs do you want? What are their types?
What tools do you have to transform your input to output?
Control logic flow
Mathematical operations
Functions
Once you have the solution, start coding it step by step. Don’t code it all at once, and test each step before moving on.
If something feels confusing:
Try not to look up THE solution. You can look up minisolutions, as in solutions for each step you’ve broken the problem into.
Take it as an opportunity, because when you’re confused, you can identify what you don’t know, and then fix your knowledge gap. Google concept queries.
Finally, if you’ve tried to break the problem down, but aren’t able to piece it all together, you can go ahead and look up a solution. Because now you know what you’ve thought of and you can identify what you didn’t think of, which is good for you to recall in the future.
A few more things:
Take the time to understand each line of code you write.
After help or looking up the answer, make sure you can reproduce the answer on your own.
The last thing is don’t be afraid to ask for help - I think it’s easy to feel like you’re copping out if you ask for help, but what really matters if you ask for help to understand things, and not to reach the answer. There’s a difference in the goal.