Ok to be the good-enough dev? Yepsilon.

Oh, I just know that would raise some hackles. “Good enough” sounds like one is lowering the bar. If I want to be just good enough dev, then I’m ok with bugs, sloppy code, side-effects, untested code. But what is the next level up from good-enough? Better enough? Hardly. Not if you care about spoken and written language. Best? Who is best? Perfect? Riiiight. You keep telling yourself that, tiger. Perfectionism is not our friend, nor are those who think they are perfect. So let us be happy calling what is not perfect “good enough”. Ok? Are you with me?

If you’re too code-y dev-y, then think about epsilon and any approximation algorithms. I have been watching MIT’s Open CourseWare (if only I could stop calling it Online CourseWare or writing MITOCD), specifically 6.0001 Introduction to Computer Science and Programming in Python with Dr. Ana Bell. While going over the approximate solution for finding a cube root, I re-encountered epsilon (ε, or error. To find a cube root of a number that isn’t a perfect cube, I have to be ok with getting close enough. Good enough, not perfect. See? Ok. Good enough seems less lazy now, doesn’t it? Sure. You were ready to label me lazy until I mentioned “algorithms” and “epsilon”. The larger my epsilon, the less accurate my answer will be, but it is still epsilon.

I’m never going to be perfect. I will never finish a project if I worry so much about perfection. But I can be good enough with an epsilon of 0.1. And the next iteration of that project, theme, or tutorial assignment could be good enough with ε = 0.01. More learning and practice and repetition and repetition and repetition will lead to ε = 0.0001. But I will never be perfect. And that’s ok.

What I want to say here this morning is that “the devil” is the spirit of fear that drives us into rigidity and anxiety, which saps our good will and clouds our compassion. The spirit of Love is where our allegiance lies as good people, spiritual people, people who want to make the world better place. Love is always in dialogue with fear in our souls and bodies and minds. So when perfectionism is sharpening its claws in you, take some deep breaths, stop comparing your insides to other people’s outsides, remind yourself to be a good enough witch, and wonder — what would this whole situation be like if I had more love.

(from The Devil and Martha Stewart, by Meg “OMG I lurv her!” Barnhouse)

750Words day 7: teaching programming to kids

Today’s topic came easy to me as teaching programming to children is something I am doing a little of and want to do more of. Also, it is a topic that sets me off. Not the programming part, but the idea that teachers are those who cannot do.

Keep in mind that what is below is unedited and part of a 750word challenge. It’s not my attempt to enter the Great American Essay contest. Egads, no. What I’m telling you is that the paragraphs and words appear as I thought of them. Sozz.



It will come as no surprise to find that I, a former teacher, am offended by “Those who can, do; those who cannot, teach”. It is a simple way of separating those people who want to teach what they love from those who want to research what they love. I can tell you that one is significantly more selfless than the other. It is also a naive understanding of what it takes to teach. Expert knowledge in a field (something that most people are not, anyway) does not mean you can explain it to someone who has never heard of the topic, struggles with the topic, or would rather be outside than listening to you blather on about the topic. I am glad that people who do not teach are not in the classroom. I find that to be selfless. Just like I do not want to have children because I know I do not have what it takes. It’s a selfless act not to knowingly screw up a child. My physicians were those who did not choose to teach biology. Good. I needed a doctor when I broke my leg, not a biology teacher. But do you sincerely think that a surgeon could explain mitochondria to a 9th-grade biology class?
Step back. Remember that teaching it means that they start from little to no understanding and end up with a workable gist (who on earth understands cells straight off?). Maybe. The classroom will have students who are inclined towards science and others who are in the class to satisfy a requirement. Maybe there’s hormonal drama, bullying, abuse at home. Teaching biology to 9th graders or even first-year university students is not going on about your research at a med school faculty cocktail party. It. Is. Not. The. Same! So stop it. Those who can teach, teach; those who cannot teach or do not wish to teach, find another profession.
People who get into teaching from another profession without reading up on child development are in for a shocker. Teachers have to be open to being wrong. Ok. I’ll be a victim of sweepinggerneralisationus maximus, but I can’t imagine the typical surgeon being ok being wrong. In her defense, surgeons are not allowed to make mistakes by people who feel they should be allowed to make mistakes. Did you follow that? Physicians are never allowed to make a mistake. People confuse that with malpractice. There may be a mindset to a physician that would make them less than ideal in the elementary school classroom. Teachers have to deal with the different types of intelligence in a classroom of different personalities at different levels of development. But no. Go on. Tell me more that those who cannot, teach.
I thought about that moronic quotation when I was teaching Python to middle schoolers. We forget that we have already made the leap from concrete to abstract, but our students may not be there. It’s not like teaching math (which I did). People teaching coding and programming languages to middle schoolers do not have thousands of master teachers to lean on for that topic. Teachers are all over the place for advice about behaviour, but many (I’d say most) have zero to zero-est experience with Python, Java, JavaScript, HTML, CSS … Many think coding, programming, and computer classes are all the same. “We already have a computer class.” Super. Are the kids designing? Are they working with backend? Are they making buttons to hope from page to page or add or check an answer? Or are these MSOffice products? No, really. What are you saying?
In one class, I realised how much I still have to learn when I was trying to help a child get his if/elif/else tree down. While the other children understood that the first level of if/elif/else need to answer that one question or raw_input, he had the elifs as questions that would be the nested and next-level questions. ARGH! Palm to forehead. We did not see that happening when we started, but knew we had to step back and add, for that child, another element to the lesson. It is not patently obvious that the if/elif/else must be at the same level. It is to us, but not to a child who might still be at the concrete-sequential level of development.
I am not the teacher in that class. I assist. The teacher is much younger than I am. 22 years! She had no formal education in teaching but knew what to do was to step back and rethink how to teach if/elif/else to a child who doesn’t naturally see the levels. This is not what a computer science professor worries about. Her lecture hall will be full of young adults who just know that if they’re asked “Are you hungry”, the possible answers (at a basic level) are “Yes”, “No”, “Maybe”, “I don’t know”. They know that the answers are not “Yes”, “What do you want?”, and “What fridge?”.
Teaching to middle schoolers is bringing back to me what I love about teaching. It’s the problem-solving. It’s getting a group of children to understand more than they did when they entered. It’s adjusting how you teach or present a topic on the fly. It’s not about dealing with the administration. It’s not being told that a child who is a bully cannot be disciplined because the parents are wealthy and donate a lot of money. Teaching with this group also brings back that teaching comes from a passion, not a degree.
I am still looking for a full-time job; however, I hope to always keep space open for teaching or tutoring. I would think my life was darned near perfect if I could have a full-time job as a software developer and then teach it on the side.

Language Buffet

Adjustments. Oof. I feel like I’ve finished my Thanksgiving meal and am hitching the waist of my jeans over my full belly. So much oof.

I have a short-term job for a month. Not only will I be working 8:30-5:00, I’ll have a 45-minute commute (bicycle) to and from. You do the math. I’m left with too little time for my original 100 Days of Code plan: an app a day.

What to do?

I am having trouble letting go of the app-a-day version, but I have also lamented the lack of time I’m giving to learning new languages. It’s a swap. A fair one at that, too. I’ve returned to Codecademy and have a goal of completing PHP and Python while repeating JavaScript and jQuery to make sure the new knowledge doesn’t shove out the old. I majored in German. I remembered taking Italian after I finished German. English didn’t creep into the Italian, but the German did. I believe that had I returned to German as I started Italian, I’d not have been as mixed up. Nothing’s proven. I do not have enough Katys to publish a peer-reviewed article on how I learn.

Wish me luck.

 

100 Days of Code: Numbers API

When I was in the midst of my coding bootcamp, my kitchen and utility rooms flooded because … I don’t know. Something blocked it, obviously, but I chose not to drill into my house. I run the washing machine water outside. That’s solved the problem. I also have very green grass. But at the time, was I this blasé about it? Aw hayull no. I fell apart. I saw the damage and wondered if I could afford it. From that day on, everything was about finding a job to pay for repairs. I could not think straight. What would I have to sell? Do I really need to wash my clothes?

That stress became a huge obstacle, and it came just as we learned about AJAX requests. I don’t know if it was clumsy typing or what, I was just not able to do them well. Sometimes not at all. Not without help. 

Now that AJAX is not part of homework, but just part of coding for fun to keep up the skills, I do not see the difficulty. Not at all. I am looking for third-party APIs to play with, and I’m not finding that getting or manipulating the data is something I cannot do. What a lesson in the damage stress causes us. 

I don’t know how I’ll use this later, but I had fun with it. The only awkward moment was getting excited to see my first trivia snippet on the date and then to read that it was something about the Nazis. 

Numbers API trivia

(I will also add 4 more chapters to “Learn Python the Hard Way” to my 100DoC. I WANT CREDIT, DAMMIT!)