Showing posts with label School. Show all posts
Showing posts with label School. Show all posts

Wednesday, December 4, 2013

To Lead or Not To Lead That is the Question

This post was inspired by a tweet one of my old professors re-tweeted. The tweet basically said this:
"wahh my teammates dont work". I don't want to hear that. I tell them suck-it-up. If you're a leader u make it work. @ProfessorF and @olga_lavrova
This will mostly be from the perspective of a student, however I will go over a real world example. 

Working in a team is hard. Even when you can pick your teammates it can be tricky. Unless you've worked with them before and you have a good idea what their work ethic is like, its really like shooting fish in a barrel. You're essentially trying to pull off something that companies have a hard time doing with dedicated staffs, with weeks, resumes, phone and  in person interviews, all in about 5 minutes at the end of class, or worse yet you're TOLD who you should work with. Like companies, you don't discover that the person was the wrong choice until you're far enough along you can't just get rid of them and get someone new. The cost is too high, the deadline is too tight. Training a new person just isn't feasible.

This leaves you with very few choices. You can just ignore the person and absorb their work. You confront the person and sometimes that works, but more often then not you absorb their work (and if you weren't irritated before now you're way more irritated that you've told them they're not pulling their weight AND you're still having to do their work). Or you drop them from the team, they get a bad grade and you have to absorb their work. Do you see a pattern here? It's a lose lose situation for the "leader/teammate" in almost all cases. (This is assuming the leaders job entails more than simply telling the others what to do, if that's the case, the leader never loses, because he is doing his job).

I had a similar problem back in college, confronted the individual, and nothing changed, I've had that problem in the real world at work, the (high level) recommendation I got? Keep micromanaging them. I have my own work to do, I'm not a manager, but we brought someone in to help with a tight deadline and I would be expected to micromanage them while still maintaining my tight schedule? What options would I have (I'm not a manager remember), I have no authority. My ONLY authority is the ability to annoy the person, and if I want to get my job done, I don't have time to do that, so what happens? That person slides along, and nothing changes, eventually the work reverts back to myself or another person who gets work done. The next assignment they get, they can do the same thing, the only time they have to actually show a specific output is if their job is on the line (this is not the case for all people, I'm just giving an example).

What makes this problem worse is that *most* people who chose to go into engineering/software development, have an aversion to conflict, and/or dealing with people. While it's great that we are expected to learn how to deal with it, (nothing wrong with learning to go outside your comfort zone on occasion), no one teaches how to deal with this problem. That behavior simply compounds the problem, because we would rather see work get done than deal with other people, those people are allowed to continue that behavior. If you drop them from the project they *usually* find another team that will let them just skate along and still can continue their behavior anyways, if not, they repeat the course and guess what, find another team to not do anything on. The scary part is that sometimes those people somehow become managers and now the person who does the work is being told by the person who really hasn't done any work in their life what to do, how to do it, AND when to have it done by. (I'm fortunate in that I have a manager who is very technically competent and can understand most questions related to my field and offer useful suggestions). 

We are taught how to think (in theory) but we're not really taught how to handle working with other people when everything is great, everything is terrible, and everything in between. Why is that? If we enjoyed dealing with this interpersonal relationships, communicating, etc, we'd get a MBA (I'm being facetious), but we didn't, we have a curiosity for how things work. As long as they're not people. I suspect that teachers hear these complaints all the time, if the answer is figure it out, then what's the point, we should be fixing this problem from the beginning? This behavior is unacceptable, from Why Can't Programmers Program, it's pretty obvious we're letting more and more people who would rather do nothing slide through the system. I'd love to rant why, but I'll leave that for another time. As Professionals, Teachers, we have a moral obligation to fix this, otherwise our society will continue to our trend of being high volume consumers, but low value producers, and from a economic standpoint that's devastating. The reason for the claimed "engineer shortage" is because we are not training engineers we're training 1:2 engineers:managers when we think we're training 1:1 engineers (and that 2 is a conservative estimate, I'm willing to bet it's more like 1:5 or something crazy).

My challenge to you the reader is to think about how we can solve this problem. What "algorithm" can we tell our engineering students to follow to achieve success in this (seemingly) always losing game?

I would rather not lead, I'd rather have a team that has momentum and can carry themselves where they need to go. Where "leading" isn't so much leading, as it is guiding a solid set of people where they never thought they could go.

People who write blogs are supposed to have all the answers. I don't in fact I think my questions outweigh my answers by orders of magnitude, I'd love to hear your input, maybe WE can solve the problem. (sometimes asking the right questions leads to the right answer, even if you don't realize it).

Tuesday, September 10, 2013

School, Learning, And What to do with it.

People complain about having to take classes they don't think they'll ever use. And I fell into that camp for a long time, in fact until about 2 days ago I fell into that camp. What changed?

I became a little more enlightened. You see, I don't need to use almost anything I learned in school, except for some of the solid basics, you know, reading, writing, arithmetic. Its when you start trying to solve harder problems that people don't ask you to solve, that you discover that using those tools makes things easier.

I'll give you an example.

I was working on testing some code, it's pretty complicated, and it requires lots of inputs, it outputs 3 values. Now to figure out how to get a particular output can get kinda tricky. So analyzing the function, if you can reduce the number of inputs that change the particular output that will make your job easier.

One way of solving this problem is attempting to plot the inputs, and the outputs and look for commonalities. This was my first attempt at solving this problem. After speaking with a fellow colleague (You know who you are, if you want to be credited I'd be happy to link to you), he suggested that I could write a search algorithm. You see, I had completely forgotten about finding "maximum" and "minimum" values, I even think I heard about it in my Machine Learning class, but unless you are actively searching out these problems it's easy to forget that there are solutions you've already learned about.

Even better my colleague suggested that that particular line of code might be to prevent the variable from causing out of bounds (WITHOUT EVEN LOOKING AT THE CODE, THAT'S HOW GOOD HE IS). How did he know this? He listened to the signals. I mentioned things like Cosine and Sine were being used in the function. He knew at a high level what KIND of calculations were going on. So he made the guess that it could be protecting. He was right!

So all I can tell you is to keep actively seeking out those problems and using those tools we were taught. I was wrong. I can admit it.

Wednesday, July 14, 2010

Past and Present 7/14/2010

Well it's been a while, and I better pop back in and say hi. This summer I've been taking Signals and Systems (ECE 314), and am doing an Independent study working on gridlabd with Pacific Northwest National Labs.

I learned a few very important lessons this summer.
1. DON'T PUT SPACES IN YOUR FOLDER NAMES.
2. Focus on one task until completion, jumping from project to project only results in many failed attempts.
[UPDATE]:
3. Test out parts before making them unrecoverable. I made a setup, then used Household GOOP on it to try to seal it, and when I went to use it, it didn't work, and the Goop rendered it useless.

School
I got with a classmate and am looking into working with Cosmiac on my senior project.  I'm not 100% sure what every detail will entail, but looks like a fun challenge, however it sounds like there might be more java involved then I really would like. Of course I'll keep you updated.

Car
Right now I'm trying to finish adding a usb power plug as well as an audio jack to my car, cleaned up finally, and I'm refusing to work on any other projects until it's done. Future plans include reading the CAN bus messages so when I press next on my steering wheel it will change songs on my iPod touch. I do plan on doing a writeup on how I put it all together.

Arcade
I actually finally got a chance to replace my fluorescent light (for the second time), this time I didn't drop the light at walmart before testing it out, now it finally works. Now if only I can finish my other projects and get in here and get it done, I would really like to get an O-Scope, and Logic Analyzer so I can do more testing but anything is possible.

Tuesday, November 10, 2009

School Reports

What's wrong with School reports today?

Frequently we are told you need X number of pages, so you push and pull at your words to try to force as many as you can out, many times rather then a clear and concise report you end up sometimes obfuscating ( to be evasive, unclear, or confusing) things.

When will it become clear that writing shorter reports that convey the information required are better then long drawn out reports that are 90% bloat and 10% real information?

Looking at Needless words I started thinking about this, I don't know how many reports this semester alone I've written that are really just bloated with meaningless information, in a simple attempt to pass as a "useful" paper.

When will engineering students write reports as clear and concise as the work we will need to produce?

I have read requirements documents that are so indirect that it's a wonder how people can implement them, and in fact I was once told that if they didn't understand the requirements they were writing that well, they would write it more then once in a couple different ways, so as to give them an "out" when the software comes that they can say "this isn't what I meant" and force you to change it.

That's a tough paragraph to read. Re-Worded: If you don't understand the material you're writing about, make it so the people that are reading it can't understand it.

Start writing what you MEAN. Stop writing bloat into your reports. I'm going to give this a try on my next Microprocessors report, I'll let you know what kind of score I get.

No one likes bloat. Me least of all.

Thursday, July 30, 2009

Class Search

I have been mulling over the idea of trying to improve the class search process where I go to school, I currently work a full time job, and am trying to go to school. Needless to say trying to schedule classes and work hours can be a bit of a bear.

Along came the idea of "class search", I'll give you a bit of a hint of what it's got, and as I continue working on it I'll bring it up a little more.

Right now my goal is to have a particular user login, and once they're logged in it will display classes that are relevant to their particular declared degree. The basic site I've currently made is an Comp Engineering Major related list of classes.

There are alot of "enhancements" that I am working on and have ideas for quite a few more.

You can check out the "mobile" version (updated most recently) here

If anyone knows any good "how to's" on using Google Calendar on their site, let me know!

Hope you like it.

Monday, May 11, 2009

State Diagrams

I was in my Computer Logic and Design class and was noticing something about figuring out how to setup a sequence recognizer for an equation of the form xk+z, on our last test we had the equation 4k+3, now that just plain had me stumped. Apparently the teacher had gone over a similar problem in class, but either I had not attended that day, or well I think I might have ADD because I don't think I've actually managed to follow along for an entire class ever. Back to the point of the post.

We got the answer guide and I noticed something there were 4 states, the question went something like this:
Create a state diagram of the following equation: 4k+3, for example when you have gotten 3 1's you will output a 1, then when you get 4 more 1's you'll get a 1...so on and so forth

This started a connection, because she showed that we would look at the states as the following,
Zero 1's at 4k + 0, k=0,1,2,3,4... OUTPUT 0
One 1 at 4k + 1, k = 0,1,2,3,4... OUTPUT 0
Two 1's at 4k + 2, k = 0,1,2,3,4... OUTPUT 0
Three 1's at 4k+3, k = 0,1,2,3,4... OUTPUT 1

So I thought to myself well then if you have z (from 4k+z) then you must need z+1 states,
additionally you would get your first 1 on the zth state.

After trying to get the teacher to understand what I was asking (one reason I'm writing this blog is to learn to become better at explaining myself), she finally agreed that my assumptions were correct.

Of course if you use another equation, I'm sure there will be some similar form you can probably find to break it into a when this do this type of situation.

Now the teacher was going over the fact that in some situations you could factor things down and do some other stuff, but you'd have to loop through your State Diagrams more then once, provided we are treating our output as a "mealy" output, we can determine what our next course of action is based on the input and our state, if it's simply a "moore" then we HAVE to use z states, because it only cares what it's previous state was to determine the next state.

I hope that is clear, if not please let me know, I would like to get better at explaining myself and any help is good help at this point!!!