Saturday, November 23, 2013

week 13

This is the week before last week and we had many “last” done, such as last project and last quiz. 

Thanks to Downing for giving us 5 in the last quiz and an one day extension of the 5th project life. It is reasonable that last project will always be most difficult, especially if we have many topics uncovered yet. To well figure out how the life system works and how to design different classes, we have to first understand the code slides on the class homepage. However, just as Downing said, the slide may help us more than we expect because of the strong relevance between them. After the instruction, I read the slide again and finally had the design phase done. I found that doing such a project really helped me to have a bettering understanding of object oriented programming, especially inheritance, abstract class, and dynamic casting. It is better than reading textbooks and code. Another thing worth mentioning is how I debugged the code. On Tuesday I found my output of cell is a little different from other students in the public repo. After simulating step by step myself, I thought my result was what I expected. Did it mean I have some misunderstanding of the requirement of the project? In fact, it is true. I incorrectly dealt with the case about age resume. After realizing that, I quickly got the correct answer

After the project, I think it is time to begin reviewing everything we learnt in the class during this semester because the final test is approaching. A should be my goal surely. I should be confident about it because of my current rank. However, just pay enough efforts in the incoming week. I can make it.


There was another company talk from square. The introduction was amazing to me! I really like it for many aspects. The first thing is their product, of course. What’s more, their working environment looks cool from video. For some sense, it is a still startup and the feeling is absolutely different from Google or Microsoft. It will push you to learn many new technologies. I really look forward to a chance of doing a summer intern there next year.

Saturday, November 16, 2013

week 12


This is a tough week for me. I had an interview for seeking a summer intern to Microsoft. During the interview there are some behavior questions such as describe my most challenging project. The main part of the interview is coding. I was asked to reverse a single linked list. It was an easy and trivial question. However, I was too nervous during that time and only had so clear idea about the best solution. Initially I gave a straightforward solution that copy each node in extra space and construct a new single linked list. It did waste a lot of space, which is big O of N complexity. Then the recruiter asked me not to use extra space to solve this problem. In fact I did know that I should not use extra spaces but I thought extra space would make it easier. So when it comes to find a solution of not use extra space, I began to think about the arrangement of pointers in the list node. Although a little complicated and I was a little messy, I finally made it. However, the follow up question made me crazy. How to make it done in O(1) time rather than O(n)? I just though it was impossible but the recruiter said I could make some changes. I could not figure it out about what the change could be. He gave me some hints but even with these hints I don’t know how to do it, until he gave me the whole solution.
Well, this is my first interview after coming to UT Austin. Although my performance is not so satisfied, I took it and consider it as an important and useful experience. Wish I could do better next time.
It happens to have a company talk from Bloomberg this week on Friday. Their work is really interesting, especially the research and development of machine learning. Bloomberg really have many data resources in this big data era and it would be really cool if I could have an opportunity to have an intern there. So just applied online yesterday!

Saturday, November 9, 2013

week 11


This week I mainly did two things for cs371p.
This first thing is that I created my portfolios with the help of seelio.com. I have to say seelio is really a great service that you just need to fill in your information and get an impressive and nontrivial homepage, which from my point of view is much better than Google site. It also saves your time comparing to build your own site from scratch. Portfolio is meaningful to me that it reminds to collect my projects to web so that I will never lose them and could show others a good demo. It is a similar story that I should push all my project code to github. That’s cool.
Another thing is Nick and I completed the fourth project Darwin. It is an interesting project. We are simulating a world that different creatures compete with each other. It is great to see after a number of steps simulation there will be only one or two species left, which is the most intelligent one. In this project, we learned how to write a decent program following the object-oriented guidelines. Avoid to use setters and getters is definitely a lesson we learned. The high light of the project is that we created a new species that beat all creatures of other species after enough steps of simulation. In fact, we didn’t design a totally new species. It is just a simple modification of rover, but it really works well that our creatures are dominant in the final grid. It far out numbered others, which made my partner and I feel great.
In this week’s lecture we discussed initializer list, which looks very complicated that I failed in the last quiz. Even though I could understand what the code is written for, it is totally different to write it by myself. As a result, in the quiz, I had no idea about how to implement the initialization list. We need to consider the inheritance, const, reference, and object’s copy constructor, default constructor. Next time, I should have a quick review after the lecture and may write some code if there is new syntax discussed in the lecture. Practice is very very important in coding.

Friday, November 1, 2013

week 10


We are entering November, the last month that will have cs371p classes. In this week, the company’s talk was really impressive. The representative of Mutual Mobile, mainly talked about changes. Comparing to previous talks, I am much more interested in this topic because I am a huge fan of mobile. I won’t miss any news of iOS/Android and their mobile devices. It is cool to hear some opinions about the changes and how should we handle the changes in mobile era, especially after I developed my own Android app this semester. Although it may be a little too far away for me to consider the architecture of my android development, learning some knowledge about it is still useful during I am learning the fundamentals.
It is a good question to think how to deal with the disappearance of service like Google Reader, if it is used in your application. The story just teaches us to make the services in a relative separate places so that we can easily get rid of it and choose some other services to replace it if necessary.
Another interesting point is the shift of major platform like iOS 7. I like the opinion that such a dramatic shift is not only a task to developers, but also a chance to do something. It is well known that currently some big application developing company dominants the app store and it is very hard for individual developer to achieve success. When a change happens, it is the individual developer’s chance to quickly adopt it and make the application more appealing to users. That could be the best way to attract new users.
In this week, we also talked about the project 4, Darwin. It is totally different from previous projects and we are supposed to have more object oriented design. Although we read many articles teaching us what is object oriented and the basic principle of object oriented, completing a project with object oriented guideline will be much more helpful. We need to think over the design before writing code. Pay attention to the use of getter and setter, which should be discouraged.
Fight.