Course Review

But first, a little about myself

first, I wanted to let something clear, and it is that I´m not an ISC and I actually don´t really enjoy a lot of the computing things, a lot of talks I didn´t even knew what they were all talking about. Just keep this in your head.

Also disclaimer, this was meant to be in a video but due to technical reasons I couldn´t upload it so I just transcribed it as it sounded in an attempt to not get misunderstood.

The way of teaching

First we´ll start with the way of teaching, the #FlippedClassroom. I have to say I really liked it, I´ve had another class with Ken before so I already knew what to expect more or less. Although I´m not as in love as some other people like Ken and a bunch of ISC, I think it´s a really good way of changing things a bit.

It really is a good way to draw people´s attention and hunger for knowledge, it didn´t work on me because I don´t like this things, and I kinda needed to be forced into the classroom. But I get it, ISC are like 99.999% of your students, I mean I wouldn´t have changed for me. What I´ll say is that all the passion you bring to the classes can really get contagious, and that´s the mark of a great teacher.

Ooohh also…the chats with other people were great. Again, I´m not really interested so I didn´t get the liking too much. But the majority of the group really liked them. So they must have really been interesting.

The Blogs

Aaahh… the blogs, if there´s one thing I really don´t enjoy are the blogs. I mean…I DID learned from them(point for the blogs) but making them

Resultado de imagen para meme adios vaquero
Continue reading "Course Review"

Time To Quality Test

Humans are not perfect

Humans are not perfect, and since we are the ones doing the programming, a lot of times programs have what´s known as bugs, or errors(Fun Fact: they are called bugs because way back in times of the ENIAC, what caused problems were literal bugs who crawled to the machine).

Sometimes bugs can be as disastrous as cracking your program the second you run it and ruin everything you´ve worked so hard for!!! and other times they´re not as bad, but either way the best thing to do is spray Raid over them and kill them(please don´t spread Raid ver your computer, that thing is really toxic).

Resultado de imagen para software bugs

Software testing is just what it sounds like, to run your own program and see how it works, so you can correct any mistakes you may have made. This is usually made in order to debug your program, or to give it maintenance(which a lot of times ´maintenance´ means a new bug was discovered). While it may seem easy, it often gives not-experienced programmers(like me) a really really hard time.

This is a huge topic and has a lot of coverage in it, so we´ll start from the beginning.

Why do we do it?

Well, first of all, a crash in your program carries a risk of damaging your hardware. Also the people funding or contracting you don´t want to pay for later debugging, because that is quite expensive. A study from the NIST in 2002 found that this is the cost of debugging at later phases of the development.

Cost to fix a defect Time detected
Requirements Architecture Construction System test Post-release
Time introduced Requirements 5–10× 10× 10–100×
Architecture 10× 15× 25–100×
Construction 10× 10–25×
Table taken from NIST Study, 2002

As

Continue reading "Time To Quality Test"

About The Privacy Clause

The privacy clause

I had already heard about the privacy clause, this clause that tells you not to work for the competence for some time after you leave a company. And the author of the blog was really mad about it(I can understand, it really is a stupid tactic) but what he doesn´t say is that anyway you look at it, companies want to keep their models, their desicions, etc. to themselves, so is it really cool to do it? because there was a time when companies would hire people to go and work in other companies to get internal info. Overall I think the same as everyone, it´s bad for both sides

The solution

I´ve heard in some of my financial classes that what companies are doing now, instead of forcing people to not work somewhere else is that they´re putting a privacy clause, where you can be sued(very heavily sued) if you leak info. From what I understood, the way it works is that when the employee leaves the company, he has some time of vigilance where if they think he has leaked info(because the other company is doing something similar, or something along those lines) they can go to trial.

The thing to understand is that yes, companies care about the employees, but they also want to make money and leaked information may get their trum card overturned.


Software Design? Let´s Take It One Step Ahead

Level up your software design

Today, I will briefly explain what software architecture is. Basically software architecture is just software design for a larger proyect, on a bigger scale.

If you remember, the basic part of software design was the algorithm design, well when you have a really big project with thousands of lines of code, suddenly algorithm design doesn´t seem as viable and yo see software architecture winking his eye at you.

Of course there are some differences in characteristics for being a bigger plan. Some of the characteristics that differ are:

  • Multitude of stakeholders: Usually clients who ask for big proyects are big companies or have a big name themselves, so you will have more pressure, but also better equipment and a better pay check.
  • Separation of concerns: Because these programs are so massive(remember, thousands of lines) they usually divide into small chunks to make them more manageable, and apply software design to them to transform them into architecture once together again.
  • Recurring styles: In order to make it easier, a pattern has been made(just like in real architecture) that we can all do. This is actually the birth of design patterns.

Resultado de imagen para design vs architecture

Image by Hendrix

Just A Little Inner Thoughts On The Art Of Learning

This is not the usual post

No, today I want to share a thought that came up to me.

So today I didn´t have lot of homework so I took the time to slack and watch some Youtube videos, and I found this great video by Core-A Gaming called “Why Fighting Games Are Hard”(yeah, I´m a HUGE fighting games fan) if you haven´t seen it and are somewhat interested go here, it is really quite interesting.

But I watch fighting game videos a lot of the time. What struck me as interesting is that just yesterday professor Ken(Hi Ken) told us about learning, that it is not a thing of just memorization, but of understanding and knowing how to apply that memorization, and that it´s not easy and IT´S OKAY TO FAIL. And that´s exactly what the video is about(in it´s own terms, of course).

The thing to understand is that as Gerald(Core-A Gaming´s narrator) said “learning is about pushing forward despite the obstacles, ´cause you won´t be able to avoid them” but then, if learning is so hard why do we go through it? Well, that´s what I think fighting games are able to teach you.

I think that we as people are just curious by nature, curiosity has been a consequence of evolution, because when you learn something new, it´s not readilty noticable so I don´t think we do it for vanity. And not every knowledge is useful, that´s why trivia exist.But it is a natural desire to differentiate ourselves, and even more in this age where overpopulation is a real problem. Because when we know something we differentiate ourselves from someone who doesn´t, and really learning something is the easiest way to do it, you don´t require natural skill or features.

Isaac Asimov once said

Resultado de imagen para fighting games
Continue reading "Just A Little Inner Thoughts On The Art Of Learning"

When Science Meets Art. Software Design

Is that even possible?

If you´ve been here long enough, some time ago I talked about mixing science and art. This is one of the best examples(Notice how I said ONE, spoilers for next post).

First let´s make things clear. Software design usually refers to the problem solving through an algorithm design(software solution). This is caused because on paper it sounds so nice(it always does) but in real life, machines have physical limitations(Memory, RAM, processing power, etc.) and a lot of times, careful planning is needed in order to make efficient what we have.

Resultado de imagen para software design

And that is what software design is at a basic level. The planning of how to implement software into a problem and create a solution.

That sounds so good, how do I do it?

Well first, it is expected that when you are in this phase you should already have done the analysis of the problem at hand(actually software design is part of the implementation step). With that in mind the first suggested step is to build a “prototype that works” meaning something either really simple or really complex that solves the problem.From there on it´s just adjusting you prototype to the limitations you have. As a sort of guideline, it is recommended that one process should not take more than 15% of the resources. Actually, there are quite a lot of suggestions, the best of them being Davis´s principles for software design which are as follows:

  • The design process should not suffer from “tunnel vision.” A good designer should consider alternative approaches, judging each based on the requirements of the problem, the resources available to do the job.
  • The design should be traceable to the analysis model. Because a single element of the design model can often be traced back to multiple
    Resultado de imagen para art vs science
    Resultado de imagen para art vs science
    Continue reading "When Science Meets Art. Software Design"

What Do You Need?

Resultado de imagen para meme what do you need

(forgive the horrible syntax) Yeah…more box! that is the answer 98% of the time. Unfortunately, in software development that is not the case. So today we are going to talk about the real requirements and specifications in order to develop.

First, the technical requirements. According to the IEEE Standard Glossary of Software Engineering Terminology, a requirement is:

  1. A condition or capability needed by a user to solve a problem or achieve an objective.
  2. A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.
  3. A documented representation of a condition or capability as in 1 or 2

So basically, it is something that is needed, either by the programmer or the user, in order to do the software. It can range from hardware requirements, such as a certain processing power, or knowledge requirements.

 

 


About A Book…What?!?!?!

So, recently I read about a book called “The Cathedral And The Bazaar” by Eric S. Raymond. Don´t let the name fool you, it´s not a story(or not the main focus), but about programming.

Resultado de imagen

Summary

It is mostly the author´s ideas about programming and a comparison between merchants in the past.

From what I could understand it compares owned programming with the cathedral, where everything is organized and largely comprehensible, with clear rules and owners. Whereas the bazaar is more unorganized, everyone can get there, they are all shouting, but since anyone can be there, it is usually richer in the products it offers, just like an open source.

It has a little bit of story in order for you to understand the comparisons, but not much.

My opinion

First, I want to say that you should take my opinion with a grain of salt, I´m not someone who enjoys reading a whole lot nor programming, which makes this kind of hard to find interesting. However I have spoken to some ISCs who really liked it, and thoght his explanations were easy to understand, and some of his conclusions very interesting.

Overall, I´d recommend to only read it if you are interested in programming, because if you are just a normal bibliophile, it will be hard and probably not worth it.

 

 


Time For A New Beginning

Hey there, long time no see.

Resultado de imagen para Ibuki sakura

Image by: Hendriw

Is it more waterfall method?

Well, yes and no, as I explained a lot of methods are derivated from there. But today we´re learning about Agile software development.

Agile software development is a method based on teamwork where work is relegated to a team specialized on a specific area. So basically, it´s the equivalent of letting the engineer do the maths while the LAF worries about money and the LIN…does nothing(it´s just a joke, I´m sorry please don´t kill me).

It was invented(or at least coined) in 2001 with the “Agile Manifiesto” by Kent Beck. And strives on the idea that by splitting the work into specialized areas, specially for smaller projects, will allow a more efficient work while maintaining the quality of the final product.

Some of the sub-divisions are:

  • Dynamic Systems development method
  • Kanban
  • Scrum

So do it quick, do it well and good luck with everything.

Resultado de imagen para flash


A focused reminder of last week

Hey, remember last week we talked about some types of software development processes? Well, today we will focus on one of them: the waterfall method. If you don´t remember or don´t know about it, here´s a quick glance.

Okay simple…what about it?

Well, the thing is that this waterfall method, this simple method may very well be like the father of all the others. If you really think about it, makes a lot of sense. Just imagine yourself some decades ago, when there were no methods and software developments just kept growing and growing. When you´re the first one you need to heavily base on something that already exists, well this is that prototype.

I mentioned it was the most straightforward, because it is, just read it from top to bottom and it´s a normal process. But straightforward doesn´t always mean simple, those steps can have more depth than you think, let´s break them down.

1.- Requirements: Well, this is simple, right? Just make an analysis of what platforms you                                        need, and some technical stuff.                                                                                                                    WRONG! while it may be a big part of it, it´s not even the most                                                        important, remember you are working with

Resultado de imagen para cascadas de misol-ha
Continue reading "A focused reminder of last week"