|IndyWatch Education Feed Archiver|
IndyWatch Education Feed was generated at Community Resources IndyWatch.
As a developer, I constantly learn new concepts and tools.
This learning process usually starts when Im coding and I get stuck.
I do a quick Google search and usually end up on a Stack Overflow page that looks like this:A parody Stack Overflow page.
Then at lunch, I hear all my friends raving about something called functional programming.
Hm I think to myself. I only learned object-oriented programming, and am a bit embarrassed to ask what functional programming is.
So I turn to my laptop. What is functional programming? I ask Google.
And Google tells me to read a Wikipedia article that looks like this:The Wikipedia entry for functional programming.
Wowthats a lot of big words, links to articles, and footnotes. Entscheidungsproblem? Is that even English?
I just wanted a good enough explanation of what the heck functional programming is.
This desire for good enough explanations inspired us to build the freeCodeCamp Guide.
The Guide is a searchable reference that aims to cover all concepts related to software development.
The articles are simple enough for non-native English speakers to understand them. Theyre short enough for busy people to read them while taking a few sips of coffee.A Guide article on the Git Clone command.
Currently, the freeCodeCamp Guide has about 3,000 articles. About half of these are stubstopics that we know are important, but havent had time to write yet.
These articles cover topics that arent part of the freeCodeCamp web development certificates, like SQL:A screenshot of the freeCodeCamp Guide article on SQLs ALTER TABLE command
And Python:A screenshot of the freeCodeCamp Guides article on the 8 Python comparison operations.
For our search engine, were using the powerful open source ElasticSearch tool. Not only does this search through the freeCodeCamp Guide articles, it also searches throug...
Denis took more than 20 courses on Coursera. It helped him power up his CV to immigrate to Germany, grow professionally, and give his family a better quality of life. Here is his story:
I went to school in Brazil, and I am currently a Software Engineer with 12+ years of experience with software development. Since the early days, I have been taking every single new course related to Machine Learning and Data Science on Coursera. My goal at first was to understand a little bit about those fields, but due to the high quality of the courses that I have found, I just fell in love with it.
For someone from where I come from, it would be quite unlikely to be able to attend classes at top universities like John Hopkins, Stanford, Washington, which are all considered to be some of the best in the world. Having certificates from those schools brought a lot of attention to my resume, and made both recruiters and technical interviewers much more prone to think that I am a good fit for their open positions.
Coursera helped me power up my CV; thanks to that, I moved to Germany earlier this year to work in one of the top fintech startups in Europe. I moved to Germany for many reasons: first was of course to provide a higher quality of life for my family. Secondly, I thought that the best jobs in IT are usually in the United States, England, and Germany, so moving to those countries seemed like a natural decision to me as I grew professionally.
After 20 courses I can confidently say that the way that I think about building software is completely different now. With the state of the art technologies and theories I have learned, I am able to propose solutions from a totally different perspective. In the future, I would like to dive even more in the Big Data and AI field and create my own startup.
Despite scoring decent grades in both my CS101 Algorithm class and my Data Structures class in university, I shudder at the thought of going through a coding interview that focuses on algorithms.
Many of the algorithmic concepts tested in coding interviews are not what I usually use at work, where I am a front-end web engineer. Naturally, I have forgotten quite a bit about these algorithms and data structures, which I learned mostly during my freshmen and sophomore years of college.
Its stressful to have to produce (working) code in an interview, while someone scrutinizes every keystroke that you make. Whats worse is that as an interviewee, youre encouraged to communicate your thought process out loud to the interviewer.
I used to think that being able to think, code, and communicate simultaneously was an impossible feat, until I realized that most people are just not good at coding interviews when they first start out. Interviewing is a skill that you can get better at by studying, preparing, and practicing for it.
My recent job search has led me on a journey to improve my coding interview skills. Front-end engineers like to rant about how the current hiring process is broken because technical interviews can include skills not related to front-end development. For example, writing a maze solving algorithm and merging two sorted lists of numbers. As a front-end engineer myself, I can empathize with them.
At companies like Facebook and Google, the people are software engineers first, domain experts second.
Unfortunately, the rules are set by the companies, not by the candidates. There is a high emphasis on general computer science concepts like algorithms, design patterns, data structures; core skills that a good software engineer should possess. If you want the job, you have to play by the rules set by the game mastersimprove your coding interview skills!
How to make the hiring process as arbitrary and subject to bias as possible.
We got a sniff of this latest manoeuvre in the youth sector the other day and it has come to pass.
The announcement is accompanied by the usual managerial rationalisations, the two CEOs vying to outdo one another in a contest of cliche. Anna Smee, chief executive of UK Youth claims, we feel we are much more credible now as the one leading organisation that works across non-uniformed and, to some extent, uniformed youth organisations. Emma Revie, chief executive of Ambition, said coming together strengthens both organisations. By joining forces with UK Youth, Im confident we have the potential to be greater together than the sum of our parts and Im excited to see what we can achieve.
For our part we remain sceptical about the claim that this merger will strengthen the voice and quality of the youth work sector. It will strengthen a particular voice, centralised and still wedded to a neoliberal ideology of self-improved young people and self-improved workers. In the present political ferment a plurality of voices would be much healthier.
As it is, as CYPN notes,...
Its been a crazy two years. I founded two startups and went through a job search. And wow, do I have some stories to tell! And more importantly, some lessons to share that I picked up along the way.
Six months into the startup journey, I was struggling to find clients. My large, personally-made Excel system that tracked all the potential customers I had cold-emailed and called was crashing my computer nearly every time I opened it.
I dialed a potential customer for the third time as a follow-up to our earlier, somewhat-hopeful conversation. As usual, when I pitched Doornox and asked if theyd be interested, I got the response that they would think about it. Doornox would solve some of their recruitment problems, but would still not help them fully hire new candidates.
At this point, I would typically launch into a deeply well-thought-out plan of exactly how Doornox would indeed solve all their issues. But perhaps because I was tired and disheartened or perhaps because I was people-watching through the window of the Starbucks I was sitting at, I simply didnt respond.
Awkward silence for three seconds. And then something interesting happened.
The potential customer went on to talk about EXACTLY what she needed. She launched into her own pre-formulated monologue about every recruitment problem she faced. She even told me, specifically, what she would pay if we offered the solutions.
In 15 mins, I learned more about recruitment than I had all week. Though we didnt offer the one thing she wanted most, we were a small nimble startup. I decided on the spot that we did offer that service, and told her the great news of our recent pivot. She excitedly said she would loop her other team member in and asked about next steps.
Doornox was one step closer to finding product market fit, and the secret to pivoting well was listening. With every future call, I mostly shut up. And counterintuitively, more sales happened! When I finally did talk after listening to customers for the majority of the call, I was able to customize the Doornox pitch to customers exact needs. In a moment they understood the value add and gave a quick yes or no (yes, you still get a lot of nos).
Founders are often aware that they should be listening to their customers in user interviews, but I found that listening is just as important on sales calls. Sales calls are like a big game of Minesweeper. You need to map out exactly what all the selling points are for each unique client. If you just click around and name all the features of your product, you will most definitely run into a bomb that explodes the whole game. But if you listen to the clues and build the relationship upon the information you slowly acquire, youll finally map out all the sweet spots and win the...
Shazams in San Francisco
While at university, I joined Shazam as part time web developer. I stayed at Shazam for 5 enjoyable years. This post is about one hackday project I worked on. The project involves plotting one billion Shazam recognitions onto a blank canvas, and then observing the result.
This post also touches upon the process I used to create the visuals.
Think of a Shazam recognition like this. You open up Shazam, the mobile app, and have it listen for a piece of music thats playing in the background. A recognition is the successful identification of the song.
A user may opt-in to sharing their location data with Shazam. Shazam then makes some of the anonymised location data (latitude and longitude) available to employees, depending on their use case.
Having anonymised location data to visualise was a cool experience. It taught me a lot about processing large datasets, visualisations which tell a story, and visualisations which look pretty but dont do anything else.
One thing you need to know, all visualisations follow this idea: One dot represents one successful recognition. Dots are plotted onto a geographical coordinate system. This is not the same as taking a Google Map and then plotting location markers over it.Chicago, London, New York, FullZoomed into New York
I have used colour to differentiate between Android and iOS. Can you guess which is which? Hint: Look at the major cities. Which device type do you think is prevalent there?
If you look closely the the dot maps, you can notice clear definitions for the roads. This can be explained by passengers who are Shazaming music playing from car speakers.
I also made maps with alternative colour schemes....
After over four months of confusion, controversy, and complete failures of Cybersecurity 101, the Federal Communication Commissions Restoring Internet Freedom proposala set of rule-changes that could dismantle Net Neutrality and forever alter the fabric of the internetended up with 22,149,776 online public comments in response.
But we still dont know how many of those were left by actual people.
In short, thats why I began an investigation that has resulted in this lawsuit.
To tell the long story, lets first review what happened over the last several months:
More accurately, automated acceptance testing in the browser is beautiful magic.
Actually, what I really want to say is that automated acceptance testing might lead to discussing the superb finish of your favorite Pinot Noir with your friends over dinner. I promise this will all make sense by the end of this short article.
Back to beautiful magic.
Every programmer loves automated browser testing when they first see it. I have seen jaded programmers, not easy to impress, who have laughed with joy the first time they see it. Ill admit I laughed the first time. When you start the tests, your browser will open up and then, without doing anything else, it looks like someone is clicking around and doing stuff.All your browser are belong to us
Its so creepy or fun or fascinating that Chrome feels the need to pop up a warning at the top of the browser: Chrome is being controlled by automated test software. I suppose this is to clarify that its not ghosts or robots? Lets call it robots anyway. But no matter how cool it looks at first (even if youre not impressed with my animated GIF), thats not even the kind of beautiful magic I am talking about.
As a lifelong programmer, I mostly care about the beautiful magic that makes us better at our jobs. Before I try to sell you on the benefits of automated acceptance testing, lets quickly put it in context. There are lots of types of testing when it comes to software. One classic way to categorize testing is by how much of the software the tests cover:
Unit testingtests the smallest possible unit of source code, typically a function or method
Integration testingbuilds on unit testing by checking how well units work together when they call each other
Acceptance testingtests that EVERYTHING works from a user perspective
You can do acceptance testing the hard way. First, the programmers click through the entire website, going through manual tests, dozens or hundreds of times. Then the clientwhos paying yougoes through the same painful and time-consuming exercise (and surely misses things). Which leads us from beautiful magic into a mystery:
Why are people, who are paid to automate things, manually doing something over and over again that can be done far faster by a robot?
I wont attempt to solve that mystery. Instead, I want to tell you a short story about all the kinds of beautiful magic automated acceptance testing can bring into your programming life.
I recently read an article that said, in its simplest form, that programming is just pressing keys on a keyboard.
Fundamentally, programmers are typists! We just happen to press the keys in a specific order that allows compilers to read the combinations of characters, and convert them into machine code.
Therefore, if you are a slow typer, it wont matter how great your IDE is, or how great your text editor is, or how productive you think your workflow is. Youll always be bottlenecked by your typing speed.
Now, Ive heard the argument made that, as a programmer, typing speed isnt so important. You should spend most of your time thinking about a given problem/solution, as opposed to actually typing.
I tend to agree. But, all things being equal, Id still rather type faster so I can get on to the next problem as quickly as possible. After all, over the course of my career, I plan to be writing tens (if not hundreds) of thousands of lines of code. Thats a lot of typing.Jim Carrey typing as God in the film Bruce Almighty
Dont get me wrong, my typing speed wasnt horrible. I was typing at around 40 words per minute, which is apparently right around the average (although I couldnt find any definitive sources). I could even mostly type without looking at the keyboard. Over the years, I had developed a pretty sketchy style where I used four fingersmy two index and middle fingers.
I instinctively knew where they alphabetic keys on the keyboard were, but would still need to look down every now and then. Especially for numbers, symbols, and punctuation (commas, full stops, etc).
I knew I could be more efficient. What was the harm in attempting to type with all ten fingers for a month and seeing how it went? I could always revert back if I didnt see any improvements.
So, at the ripe old age of 29, I decided it was about time I taught myself how to touch type.
I did a Google search for learning to touch type, and the first website that came up was TypingClub. Its free and has a nice interface, so I went with that.
Its been nearly a month since I started, and have put 14 hours and 44 minutes of practice into it.My stats taken from typ...
Patrick Ainley and Martin Allen (in the next edition of Post-16 Educator) Labours pedagogic project Like other social democratic parties, Labour was established in opposition to revolutionary communist parties. Backed by the trades unions seeking a better deal for their members, it sought to reform society in the interests of working people through governments that 
UPDATE: The Next Web wrote a story about my findings: https://thenextweb.com/security/2017/09/21/ticket-trick-see-hackers-gain-unauthorized-access-slack-teams-exploiting-issue-trackers/
Months ago I discovered a flaw hackers can use to access a companys internal communications. The flaw only takes a couple of clicks to potentially access intranets, social media accounts such as Twitter, and most commonly Yammer and Slack teams.
The bug is still out there. It isnt something that can be fixed right away. Over the past few months, I contacted dozens of companies and affected vendors as part of their bug bounty programs in order to get their setup fixed. Due to the number of affected companies it was not possible to contact everyone. On the recommendation of some of my hacker heroes, and with approval of the affected vendors, Im publishing this blog so everyone affected can act immediately. Introducing what Ive been calling Ticket Trick:I gave my finding a name and a logo. Deal with it.
Popular business communication tools such as Slack, Yammer and Facebook Workplace require employees to sign up with their @company e-mail address. Once an employee clicks on the verification link sent to their internal email address, they can join the companys instance and access internal communication.Slack: Users with the same @company mail can join the team by default, this can be replaced by SSO or set to invite-only.Yammer: everyone with an @company mail can join.Facebook Workplace: everyone with an @company mail can join.
METHOD #1THE ISSUE TRACKER
It started when I discovered a way to bypass this authentication with GitLab. Anyone with a valid @gitlab.com e-mail address could join their team.
At the same time, GitLab offers a feature to create issues by e-mail by sending them to a unique @gitlab.com e-mail address. See *where this is headed?...
Im excited to answer this next question for my Ask Preethi series.
I want to get started with programming but I dont know know where to start.
What programming language should I pick?
Should I focus on front-end, back-end, machine learning or something else?
Theres so many options to choose from, its overwhelming.
Anyone who has embarked on this journey to learn how to code has came across this question. Your first thought might have been to google it. Next thing you know, you realize that the internet is filled with lots of good opinions. Too many good opinions.
Even after reading those opinions, youre left still not completely sure which is the best language or platform to start with.
How do you choose? Well, heres my 11-minute answer to this question:https://medium.com/media/e7c571e751fa1bbbdee5ca203f03b7a9/href
What programming language should I pick? Should I focus on front-end? Back-end? Machine learning? was originally published in freeCodeCamp on Medium, where people are continuing the conversation by highlighting and responding to this story.
Last year I faced a major life and career decision: commit to pursuing a Chartered Financial Analyst designation or spend my time learning to code online at a website called freeCodeCamp. The CFA institute had been around for decades and its designation was sought by some of the worlds most successful business people. freeCodeCamp had been around for just a couple of years with a few token members who claimed they had landed jobs as junior software developers.
I spent 4 years studying business at Western University, graduated with honors, and accumulated a mountain of student loan debt along the way. My GMAT score was in the 95th percentile if I ever wanted to pursue an MBA. Why would I give up on my field of academic study before I had even started my career?
After consulting with friends, family, and other professionals, the advice I received was unanimous. Learning to code online and becoming a software developer without a computer science degree or any background in engineering was crazy-person talk. I should hurry up and register for the CFA Level I exam.
I had read the famous Marc Andreessen essay Why Software Is Eating The World, and 5 years later his message seemed only more true.
Americas largest industrial company, General Electric, had just announced that it was moving its headquarters. It was setting up in Bostons tech hub in an effort to transform itself into a top 10 software company by 2020. CEO Jeff Immelt had some groundbreaking beliefs. He was convinced that the data they could capture while using their machinery might become more valuable than the machinery itself. GE needed to think of its competitors as Amazon and IBM. Later that year, he would announce that all new hires would learn to code (but I didnt know that at the time).
As the New York Times elaborated, Employees companywide have been making pilgrimages to San Ramon for technology briefings, but also to soak in the culture. Their marching orders are to try to adapt the digital wizardry and hurry-up habits of Silicon Valley to G.E.s world of industrial manufacturing.
I recently moved from Rio de Janeiro, Brazil to Vancouver, Canada. The first thing that hits you right in the face, aside from the beautiful scenery, are the rental prices. Vancouver is currently ranked among the top 5 most expensive cities to live in the world. The rental price of a property is indicative of how expensive it is to actually own and mortgage that same property.
I decided to start a side-project that could mine a decent number of housing listings and crunch the data. I wanted to come up with my own conclusions about the current real state market in Vancouver. Theres a bunch of well formatted data living on these listing websites on the web, so why not go ahead and grab it? This is how this project was born.
This article will walk you through the architecture, costs, pros and cons and more about the first crawler Ive built using no servers at all. It is living 100% on the cloud, using only AWS (Amazon Web Services).
Sure enough, everything you run on the cloud, is backed up by servers at the end of the day. What I meant by Server-less is that you wont have to actually maintain any server or virtual machine yourself.
Shall we start?
In case youre not familiar with these services, I will summarize them for you:
Photo by Chance Anderson via Unsplash
Say youre a developer who wants to build a note taking app. Lets look at one feature detail with huge implications on your back-end. To write a note, your app will need to be able to save the data.
Saving a record to a database is straight forward. The key questions are:
If you intend for the notes to be private to the author, you may conclude that you are making a shoe-box app. This means all data goes to a private DB (database).
If you intend for your app to share notes with others, you may conclude it should be a public DB.
But will you know which it is before you start?
And what will you do if you need to change your product as you go? Public DB and private DB isnt the first thing most developers think about when theyre building an app. We encountered these question when we were building our back-end product for our developers, Skygear.
Because of our experience in building apps for clients, we assumed there was a right choice of database. And that our user would know how to choose.
How do you build a back-end for developers who arent sure of
their products needs yet?
Or for those who want to keep their options open in the future?
As the tech lead in the project, Id like to share with you our decision making process from 2 years ago. I hope it helps future development teams approach unknowns and assumptions.
Many apps require a back-end to store and query user data. The back-end is a lot of hard work to build and, lets face itnot so enjoyable to create. Skygear is our open-source serverless back-end. It helps address common development features for mobile and web apps.
The feature Ill talk about is our Cloud DB, where you store and query user data. When we started to design Cloud DB, we asked ourselves how different apps store and query user data.
We looked at our companys mobile apps portfolio for inspiration. Our company does everything from consumer apps to e-commerce apps. So we grouped them into shoe-box and social apps.
Shoe-box apps store personal data that the user wants to keep private. For example, our side project Spentable helps a user track of their daily spending. Data stored in the...
This is the second installment in this series of articles where I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. If you like the series and want to see a book out of this, please leave a comment below. Heres the first part in case you havent seen it yet.
During December 2006 and January 2007, I worked hard to get my maps application up and running. While building it, I wanted to learn as many programming notions as possible, trying to cram all the knowledge that would get me ready for the job interview into my head.
Out of all the concepts I could learn, I identified the main ones that I thought would be relevant for getting the job. This narrowing of focus is a very important step toward achieving goals, since we dont want to be all over the place, trying to grasp a bit of every subject but then failing to reach deepness on any of them.
For my situation, I understood that I had to learn about object-oriented programming, since that was one of the most important programming techniques in use. On the technological side, I had identified PHP as the key programming language that would land me a job, while learning Flash programming would be the skill that would differentiate me from other candidates.
How did I know that? It was a bit of hunch informed by what I was seeing mentioned on the web, along with what the computer magazines were writing about.
Even back then, before I had the job, I knew it was very important to learn to understand and analyze the market I wanted to break into, and finding the right websites and publications is a very important step toward this. This is because these resources often have information that points to the ideas, trends, and technologies that we should focus on.
Once my app was done and I felt I was ready for the interview, it was time to build my resume. However, I had no idea what should go on a tech resume and what should be left out. I listed things like MS Word and MS Excel as some of my skills, together with Adobe Illustrator and some InDesign. Why not, right?
Wrong. Just thinking about that first resume makes me blush. If nothing else, what was clear about it was the message it was signaling: this person is a complete noob.
The problem is that as someone trying to break into a new field and start a career, it was difficult to have something to write down on my resume that made me look competent. I had no idea what to include, so...
Illustration by my friend Sebastin Navas.
In this series of articles I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. If you like the series and want to see a book out of this, please leave a comment below.
At the end of 2006, I arrived at a crossroads in my life. My hopes of becoming a secondary school linguistics teacher had vanished in an instant, as several factors had come together and made it impossible for me to continue with my studies.
Back in my hometown of Durazno, Uruguay, my wife was working long hours for a meager $160 (USD) a month. Yes, thats $1,920 a year. We had sacrificed our time together so I could become a teacher and get a better job because we were dreaming of a better future.
The problem with dreams is they tend to vanish when you wake up, and lifes alarm clock had just gone off.
Because my career trajectory had suddenly strayed off course, I moved back to my hometown to figure out my next steps. Needless to say, I was depressed at the way things were, and our living situation only made things worse. It was good to be back with my wife, but the reasons for it were stressful.
Additionally, we were sharing a house with my wifes aunt, so our privacy was restricted to our bedroom, and we always felt like we were overstaying our welcome.
As a way to bring in extra income, we tried to sell homemade pasta on the streets. I would go door-to-door collecting orders for the weekend. Hello, do you want to order ravioli to eat this Sunday? Id ask person after person. Yes, theyre homemade. Just give us a time and well deliver them.
Then, after people ordered them, we spent our entire weekends making 2,000 ravioli only to end up with 500 pesos in our pockets, which comes about $20, not counting expenses.
The whole situation was disheartening, and it made us feel hopeless. My wife would work hard all week, then come home only to spend her weekends helping me prepare the ravioli. She couldnt even have one day of the weekend for herself. She begged me to stop selling ravioli, even if that meant we would end up with less money to pay our bills. Eventually I agreed, but it meant I had to try to find a joband finding a job wasnt so easy in our rural hometown. Anxiety and desperation were starting to set in.
One night, I was talking with a friend who was studying computer engineering at the university in Montevideo. He told me about the various job opportunities one could find in the capital city, with salaries that were the stuff of dreams for someone living in the countryside. Theres this big company in Montevideo, Live Interactive, he told me. Theyre always looking for programmers; maybe you could try to get a job there. They pay really well...
A lot of my work lately has been making design system specs and tools for IBM. Yet, I needed a break back into product design. So over the last couple of weeks, I spent free time working on a fun design challenge.
I am going to walk you through how I identified a problem, pushed myself in a new direction, and learned some new tricks.
Note that Ive written a sister article about how to code this Progressive Web App news website here.
Designing for yourself is the easiest project you will ever have.
While working, I noticed a new behavior at work. I would become bored on a task after a while and then check Reddits r/WorldNews. The problem was that I wanted to browse that page to feel up-to-date on current events but that is not what happened.
The page focuses on the community aspects with up-voting and comments. Granted, that is what Reddit was built for.
The benefit of r/WorldNews is that the headlines at the top are upvoted because others found them important or interesting.
I wanted to focus on those headlines and also have the option to dig deeper into a story. Comments would distract me from doing that. I once saw a study saying that Reddit users were more likely to go straight to the comments instead of clicking the link posted. I knew this was true from my own behavior and it kept me from reaching my intended goal of reading the articles.
So I set a goal for the user experience:
A user can stay up-to-date on the top news from across the web without community distractions.
Listen, sometimes you need a break from what you are working on. You need to take a step back and do the exact opposite. In this case, I needed to get away from my flatter-than-a-pancake designs. I needed to stop abstracting UI like Jackson Pollock.
I needed to go back to the late 2000s skeuomorphism craze. Everything resembled analog items.I decided to get skeuomorphic with newspapers.
Sunday morning as a kid, my dad and I would go out to a Tex-Mex restaurant to eat breakfast tacos and read the local paper. There was a bliss in those moments because you would scan the stories for an hour. You eyes would jump around to find the next story you prioritized. There were no opinions besides Dear Amy telling me how to address my non-existent bully at work.
So I set a goal for the visual design:
The appearance will only bring in web-based elements as needed and emulate a physical newspaper as much as possible....
For the last two weeks, I worked on a personal project called The Global Upvote. The Global Upvote aggregates top voted stories from across the web, summarized and updated every sixty seconds.
This article focuses on how I was able to implement The Global Upvote for aspiring developers. I wrote a separate article about design process behind this. These two stories may seem completely separate. But the design and development process was deeply intertwined in real life.
Note that Ive written a sister article about how to design this Progressive Web App news website here.
In design, there is a concept of content-first. Content-First Design says you need to design around the content. For me to do that, I needed to ensure I could grab the correct data. Before I started on any of the actual front-end work, I worked with the Reddit API and my Node server.
I knew there were two parts of content I wanted to capture from Reddit:
One big thing I learned on this project was request management. In the past, I had used my Node server as a API requester every time a user would visit my app. But, I had an obvious epiphany.
I could hold on to the small amount of data (stories) on my server and update it once a minute with a simple setInterval. This stopped pushing the risk of abusing my Reddit API limits and shortened story load times because I would not have to ping the Reddit API every time.
Wanna know the cheap, dirty secret about making a progressive web app in React? Just use Create-React-App. The contributors on that project have done a wonderful job of adding service workers for near-instant loads and a manifest file for your meta data, and optimizing the Webpack bundling the best they can. In the past, I had to do a lot of work for PWAs ( Progressive Web Apps) and even wrote a...
You want your child to succeed in math because it opens so many doors in the future.
But kids have a short-term perspective. They dont really care about the future. They care about getting through tonights homework and moving on to something more interesting.
So how can you help your child learn math?
When kids face a difficult math problem, their attitude can make all the difference. Not so much their I hate homework! attitude, but their mathematical worldview.
Does your child see math as answer-getting? Or as problem-solving?
Answer-getting asks What is the answer?, decides whether it is right, and then goes on to the next question.
Problem-solving asks Why do you say that? and listens for the explanation.
Problem-solving is not really interested in right or wrongit cares more about makes sense or needs justification.
In our quarter-century-plus of homeschooling, my children and I worked our way through a lot of math problems. But often, we didnt bother to take the calculation all the way to the end.
Why didnt I care whether my kids found the answer?
Because the thing that intrigued me about math was the web of interrelated ideas we discovered along the way:
I am sitting in a bookshop after work. In the bookshop cafe. Drinking tea. Writing. Reading.
I like to read. I enjoy both fiction and non-fiction. But in either form I enjoy the description of ideas and people. Reading challenges my mental paradigms, and helps me gather new ones, new thoughts, new ideas, perhaps layered upon and blended with the old.
Reading can be both public and private. Indeed, it has been said that reading, especially reading fiction, encourages empathy that it is a kind of empathic technology.
I dont know if that is particularly true but I do know of the power of narrative transportation. Indeed, research been shown that millennials who were immersed in the Harry Potter narratives have been influenced in terms of empathy for the outsider. This has, apparently also affected their votes.
Now that is pretty powerful. As Neil Gaiman said: Fiction can show you a different world. It can take you somewhere youve never been. Once youve visited other worlds, like those who ate fairy fruit, you can never be entirely content with the world that you grew up in. And discontent is a good thing: people can modify and improve their worlds, leave them better, leave them different, if theyre discontented.
Reading thus becomes a conversation. Reading together can draw us together, as individuals and families and communities. Barack Obama, on meeting author Marilynne Robinson, commented: When I think about how I understand my role as citizen, setting aside being president, and the most important set of understandings that I bring to that position of citizen, the most important stuff Ive learned I think Ive learned from novels. It has to do with empathy. It has to do with being comfortable with the notion that the world is complicated and full of grays, but theres still truth there to be found, and that you have to strive for that and work for that. And the notion that its possible to connect with some[one] else even though theyre very different from you.
I think reading, and reading aloud as a family, has encouraged us to see new and different viewpoints. To question and to think....
|IndyWatch Education Feed Archiver|
IndyWatch Education Feed was generated at Community Resources IndyWatch.
Resource generated at IndyWatch using aliasfeed and rawdog