I'm a new student who joined Group D (Practical) of the NYCU CS master's program this past July. I've been here for three months and I really like it, so I'm writing to recommend it to everyone. But I wasn't sure how to write a proper experience post, so I decided to use a Q&A format for this article. If you have any questions, feel free to leave a comment below, and I'll update the post with my replies.
Here is a simple table of contents, which you can search directly:
- What groups does the NYCU CS master's program have?
- What is the department computing center? How is it different from the university computing center?
- The department computing center is mostly students. Does it feel like a club?
- Are Groups C, D, and E very experimental?
- What exactly does Group D do?
- Why did I choose Group D?
- What's my background? Does Group D really not care about grades?
- Who is Group D not suitable for?
- Downsides of joining Group D
- Group D admission process
- Content of the second-stage exam for Group D
- What to note when applying to Group D
- What if I currently have a job?
- Reference thesis topics for Group D
- Does Group D require choosing a professor?
- What qualifications do you need to get into Group D?
- I can't remember commands. Is it OK to look up man pages on the spot?
- Are there basic skill requirements?
- Do you have to use PHP to join the WWW group?
- Is there a lot of legacy code?
- Can I go on exchange?
- Can I graduate early?
- How do I prepare for the Group D recommendation admission?
- Other reference information?
- Disclaimer
- Conflict of interest disclosure
Video of the 2021 CS Group D admission information session
https://www.youtube.com/watch?v=5UJgsiqgE-4
Q: What groups does the NYCU CS master's program have?
A: As far as I know, the NYCU CS master's program is divided into Groups A, C, D, and E.
Roughly speaking, they fall into two categories: traditional admission and practical admission. Group A is traditional admission, while Groups C, D, and E are practical admission. Practical groups care a lot about your practical skills, competition results, Side Projects, and so on, and they don't care much about your grades at school.
Group A: What most people think of as a graduate program. Recommendation admission looks at in-school grades, exams look at scores. In short, it's all about grades. After you enroll, the focus is on academic papers. You have to join a lab and find a professor yourself, and you may get pushed into industry-academia collaboration projects.
Group C: Practical admission, but what you do after enrolling is similar to Group A.
Group D: Practical admission. The director of the department computing center becomes your advising professor directly (you can also find an additional co-advisor). You work at the department computing center (you earn six credits and a salary). Your thesis topic must relate to the work at the department computing center (Web, k8s, Linux, FreeBSD, VM, Net, Mail, LDAP … etc.). You don't have to join a lab.
Group E: Practical admission, but you need to be on duty at the university computing center. I believe you also need to join a lab (I'm not sure whether the current rules still say so), so it may be more tiring. (I'm not in Group E, so this is my personal guess, since you have to be on duty and also join a lab at the same time.) (You can refer to the supplement from B4.)
Quietly, between us: I've heard that some practical-admission groups claim not to care about grades, but during the recommendation interview, professors may still think your grades are terrible ^_^ In any case, I'm sure Group D is not like that. In the Group D interview process, I didn't feel any discrimination against people with poor grades. The interviewers and professors I met truly believe that practical skills matter, and I didn't sense any hidden prejudice.
Q: What is the department computing center? How is it different from the university computing center?
A: The department computing center is mainly made up of undergraduate students and Group D students. Only the team leader is a staff member, so it is relatively flexible, more willing to try new technologies, and students have more decision-making power.
The university computing center, on the other hand, is mainly made up of staff. My personal guess is that the university computing center may be more like working part-time to help the staff with their tasks. After all, if I were a staff member at the university computing center, I probably wouldn't dare let students plan the course registration system directly, because if something went wrong, it would be a huge problem. But at the department computing center, for example, the graduate admissions recommendation system is planned, developed, and maintained directly by us Group D students.
However, the part about the university computing center is my personal speculation, since I have never joined the university computing center or Group E.
Q: The department computing center is mostly students. Does it feel like a club?
A: From what I've observed, it has the advantages of a club but not the disadvantages.
The advantage of a club might be that students make the decisions, and everyone is very active.
The downsides of a club are mostly a relatively chaotic system, the possibility of it shutting down, succession problems, resource problems, and so on. But the department computing center is an official unit of the school, so it receives resources and budget directly from the school. As for succession and shutdown, let me give you a real data point: as far as I know, the department computing center has at least 20 years of history, and Group D has at least eleven years of history. (Anything earlier can't be verified XDD)
By the time you join next year, we'll have at least twelve years of history <3
Q: Are Groups C, D, and E very experimental?
A: This is also what I worried about at first. When you're doing a graduate program, the biggest fear is that the professor or the school system will be a mess, wasting two years of your time and energy. However, as I said earlier, Group D has at least nine years of history, and the department computing center has more than 20 years. Plus, based on my observation over the two months since I joined, I don't think this is a big problem.
Q: What exactly does Group D do?
A: Groups such as Web, Systems (Linux, FreeBSD), VM, Net, Mail, LDAP, and so on. The group contents are basically self-explanatory. For more details on what they actually do, you can attend tomorrow's information session. Each person will be assigned 1 - 2 groups.
Q: Why did I choose Group D?
A: Actually, I only applied to Group D, mainly because:
- I like practical work more than theory. Theory is important too, but I prefer getting my hands dirty and writing code myself.
- I like working with strong people, rather than entering a lab and finding that my classmates don't even know how to set environment variables.
- I've heard that many professors like to assign thesis topics, but I want to work on a topic I'm personally interested in. (Being assigned a topic isn't necessarily a bad thing, but I don't like it.)
- I've heard that if you pick the wrong professor in graduate school, you can get stuck for a long time. But I've also heard that in Group D, a professor is unlikely to see that you're capable and insist on keeping you.
- My background and grades might make it difficult to get into a regular graduate program (I'll add my experience later).
- It's NYCU, the earliest CS department established in Taiwan. That feels pretty cool.
- I'm from Taipei, and I lived in Taipei from elementary school through university, so I deliberately chose a school outside Taipei XD. I also considered National Chengchi University's Digital Content master's degree program.
- There's a salary. I've heard that on average people get about NT$20,000 a month, and a few even get NT$30,000. I did a rough calculation: working (programming) 2-3 days a week gets you about NT$20,000.
Q: What's my background? Does Group D really not care about grades?
A: Let me start with the bad parts. In my third year, I was dismissed under the "double 2-1" rule. My GPA was 2.3, and my class rank was 41 out of 43. This proves that Group D really doesn't care about grades.
But that doesn't mean that if your grades are terrible, you can come here to launder your academic record >///<
Group D places great importance on practical skills. As for me, I won a hackathon prize almost every semester during my university years. Once, MIT Media Lab held a competition in Taiwan, and our team won a Special Excellence award. My team and I had developed the school's electronic voting system and electronic check-in system. Although my grades were very poor, I was selected as an outstanding young person of the college in my third year because I had a rich record of practical experience (and then I got expelled anyway. Sorry, professor).
Most of my classmates and seniors are the same. Everyone keeps their talents under wraps and has worked on all sorts of weird projects.
Common traits of people in Group D: they love technology, attend seminars, write code until they forget to eat, solve their own life problems by writing code, and build Side Projects just for fun (not specifically to look for a job).
From my own impressions during my interview last year, I could feel that everyone, from the professors down to the seniors (the first round of the interview is with seniors), truly and sincerely cares only about your practical skills. It's not the kind of fake morality where people claim not to care about grades but keep asking nosy questions.
Q: Who is Group D not suitable for?
A: If you can't write code, or you don't have related system administration experience, I suggest you don't consider it. Even if you're lucky enough to get in, you'll suffer, and you may not be able to graduate.
If you're entering the IT field just because the salary is high and you want to make money, I suggest you choose the field netizens love most: medicine or dentistry. Don't come to Group D. You'll suffer, because your classmates genuinely love these things from the heart. For them, learning these new technologies is a rest, but for you it would be work.
Q: Downsides of joining Group D
A: Actually, I think the advantages of Group D may also be disadvantages. For example, some people say Group D is very demanding and hard to graduate from. That's partly true and partly not. If you don't like IT at all, Group D will be very demanding for you and hard to graduate from. But if you love these technologies and have the ability, Group D is actually quite relaxed (?). And doing things you love every day is really fun.
Well, if you can't even finish a project of your own and still come to Group D, then it really is demanding…… (respect
As for other downsides:
- You have to find your own thesis topic. For me this counts as an advantage, but it can also be a disadvantage, because the topics are really hard to find XD
- The thesis direction needs to be practical, and professors want your thesis to be applicable to the production systems of the department computing center.
- Group D students are required not to do internships. If you have an internship or part-time job, the professor will ask you to quit. However, Group D students generally earn a higher salary than ordinary graduate students.
Q: Group D admission process
A: The first stage is a document review. Quietly, I'll admit that my document review materials were very simple. It was basically just uploading my work résumé to the system. However, if I had to say what to emphasize, I'd suggest highlighting:
- Practical skills: what programming languages you know, what projects you've done, and what difficult problems you've solved.
- Community experience: have you attended COSCUP, SITCON … blablabla, or even served as a team leader or volunteer, and so on.
- Teamwork experience: since Group D requires you to work at the department computing center, my seniors said they care a lot about teamwork skills and experience.
After passing the document review, there's a second stage of an exam plus interviews, which takes about two days.
- Day 1: a written test in the morning, and in the afternoon, two interviews with seniors (one for the systems track and one for the Web track), about ten minutes each. You go in alone and face N seniors.
- Day 2: an interview with professors, about ten minutes each. Only you go in alone to face N professors.
As for the exam, it isn't really an exam. It's a paper of over ten pages that covers VM, Web, DB, Net, Linux, Mail, and other areas. I'll try to recall the questions in the next section. But this paper is not used for scoring. We use it in front of an electric fan and see who gets blown the farthest. The farther it goes, the less you wrote.
Just kidding. This paper is prepared for the next stage, the interview. The interviewers look at which questions you answer and chat with you about those, so the paper is mainly meant to see which fields you're good at, which helps them decide what to talk about with you.
The interview with the seniors is quite in-depth. Let me give an example from a question I was asked. Probably because I had written MySQL-related answers on the paper, they asked me about MySQL backups:
Senior: "How would you back up a database?"
Me: "mysqldump"
Senior: "But mysqldump locks the tables. What would you do?"
Me: "I'd use a cronjob to back it up in the middle of the night"
Senior: "What if you're running a Global service?"
Me: "I haven't encountered that, so I haven't researched it"
Me: "But I'd guess that using Master Slave should solve this problem. You could run mysqldump on the Slave, then watch whether the Master's performance is affected"
You can refer to this dialogue. Seniors want you to understand a thing deeply (the scenarios it applies to, the reasons, and why you chose that technology), not just copy and paste. After all, when you're maintaining a production service, if you just copy and paste, big problems will happen soon.
There's an industry joke: when you run into a problem that Google can't solve, it means you've leveled up. Group D wants exactly this kind of "person who can chase clues and solve unfamiliar problems on their own."
One thing I think is very important: "to know what you know, and to know what you don't know." If you don't understand something, just say so. It's fine not to know. The seniors may have simply asked about something you don't know, and answering "I don't know" saves everyone's time, letting them quickly move on to questions in areas you're good at. If you force an answer and get it wrong, that actually counts against you. It's normal not to know everything, because everyone has areas they are strong and weak in. We're looking for deep people, not broad ones.
Q: Content of the second-stage exam for Group D
A: Below are some of the questions I'm trying hard to remember from a year ago:
- Briefly describe the rendering process of a browser.
- What is Callback Hell?
- You need to develop a room booking system. Two professors want to book the same room at the same time. How would you design the system architecture?
- What are the drawbacks of containerization?
- What's the difference between ORM and Query Builder?
- If you can't connect to the machine room's VPN, how would you handle it?
- If you can't reach your service from the public internet, how would you fix it? (You can mention the commands you'd use.)
Q: What to note when applying to Group D
A: We can only do recommendation admission, not an entrance exam.
Q: What if I currently have a job?
A: No problem. I tell my friends this: applications open in October this year, and admission results are usually confirmed around December. But you won't have anything to do until around July next year, and the semester officially starts in September next year. So, if you get in,
you have almost nine months to resign XDDD
Even if you don't plan to quit your job right now, don't you think you might want to change jobs next year? Group D can give you a chance to switch jobs seamlessly. Think about it: which company would give you an offer for a year from now? XDDD
Q: Reference thesis topics for Group D
A: This is something I've always been worried about too. I never knew what a "practice-oriented thesis" meant, so I specifically put together this section. I'll list a few thesis titles from seniors that I came across. Looking at these topics should give you a rough idea of what a practice-oriented thesis is. (These are a few I searched for at random in the system, and I haven't read their contents.)
- Providing reliable and easy-to-maintain web services with CI/CD and Kubernetes
- System log collection and presentation in large IT architectures
- SendSwitch: a user-defined asynchronous email processing workflow framework
- Research and development of a multi-user private cloud storage service with collaboration
- A highly integrated, unified account management system based on LDAP
- Research and development of mail system testing, analysis, and anomaly notification tools
- A PaaS platform with per-user resource control based on Kubernetes
Q: Does Group D require choosing a professor?
A: No. Group D doesn't have to compete for professors the way other groups do, because as soon as you join, the director of the CS department computing center becomes your advising professor directly. This year that is Professor Tseng Chien-chao, who according to seniors is a very good professor. Later, based on the direction of your thesis topic, the professor will help you find other professors to co-advise you.
Q: What qualifications do you need to get into Group D?
A: This question is really hard to answer, because it's difficult for us to set a standard for "practical skills." If I had to say, I think these lines fit pretty well:
- You're the person with the strongest practical skills in your class. You think your classmates can't write programs properly or handle Linux (and you're far ahead of them).
- You write strange little programs on your own, not because of assignments.
- You stay up until midnight writing code or playing with systems and still feel great about it.
As for work experience, or whether you have commits on GitHub, these things aren't really important. They are just "supporting evidence of your practical skills." The key is that your practical skills have to be solid.
However, I think that if you're hesitating, you should just apply. The application fee is only NT$800. I've met many very capable people who lacked confidence. In my view, the key isn't how capable you are (this is often hard to judge yourself, and there's always someone better), but whether you love computer science.
Q: I can't remember commands. Is it OK to look up man pages on the spot?
A: Of course! If you had to memorize every command, that would be a fake practical admission, wouldn't it? Honestly, who memorizes every command and parameter while working?
Q: Are there basic skill requirements?
A: Although the WWW group uses PHP + Laravel, this is not a requirement. What we care about is whether you can solve problems (with the tools you're familiar with). As programmers know, learning a new language is actually quick. Mindset matters more, and what we care about is not which tools you know, but how deep your knowledge goes.
So, knowing PHP is not a prerequisite!
In addition, although the systems group and the WWW group use k8s, k8s is not a required skill (but being able to pick up new tools quickly is essential). If you only know FreeBSD and not Linux, that's fine too, because different paths lead to the same destination.
Q: Do you have to use PHP to join the WWW group?
A: Wow, this is going to get into a religious war XD But sorry, to answer precisely: we don't require admitted people to have PHP & Laravel skills (but you need to learn them yourself before enrolling). However, all WWW group projects "must" use PHP & Laravel. I understand that many people don't want to write PHP, and I'm one of them. I switched from PHP to Python a long time ago. So why do we still require PHP? Because PHP is, in a sense, a common denominator. It's not perfect, but it's not so bad that it shouldn't be chosen.
An organization needs a shared programming language. It's impossible for everyone to choose the language they want to use, or the projects will soon become unmaintainable.
Q: Is there a lot of legacy code?
A: Our CI / CD and Coding Style requirements are very strict. I looked at the code of several currently active projects myself, and they don't really look like a bomb (though the earliest ones definitely were a bomb XDD).
Q: Can I go on exchange?
A: As long as you've done your work well, completed your thesis, and handled your duties properly, going on exchange in the third year of the master's program is not a problem, as far as I know. In fact, one big reason I chose NYCU is that NYCU has signed exchange agreements with many awesome schools.
Q: Can I graduate early?
A: As far as I know, there's no precedent. If your thesis is finished, the professor won't insist on keeping you. But even if you finish your thesis early, as far as I know, there's no example of graduating early.
Q: How do I prepare for the Group D recommendation admission?
A: Frankly, I think Group D can't really be prepared for. If you don't have the enthusiasm and habit of playing with related technologies in your everyday life, and if CS is just an "exit path" for you rather than a "passion," then it will be very hard to get into Group D through preparation.
I think the only thing you can prepare for Group D is organizing your everyday work and projects into a résumé. But if you don't have relevant experience in your everyday life, you can't become the person Group D wants through deliberate preparation. You can't prepare Side Projects just because you want to apply to Group D (strictly speaking, those wouldn't be Side Projects anymore). Even if you prepare something very polished and convince the interviewers to admit you, in the end both sides lose: we picked the wrong person, and you end up with two painful years of a master's program, possibly unable to graduate.
Q: Other reference information?
Video of a senior introducing Group D at a COSCUP lightning talk
https://www.youtube.com/watch?v=ZetScLiRuH4
NCTU CS Group D and E recommendation admission experience - Graduate school board
https://www.dcard.tw/f/graduate_school/p/233412347
Admission guide P.155
https://bit.ly/111-nycu-exam
Admission timeline
https://exam.nycu.edu.tw/111MD/111MD2/index.htm
2019 NCTU CS Group D recommendation admission experience | yiyu0x's blog
https://blog.yiyu0x.org/2019/11/22/
2018 NCTU CS Group D interview experience - PTT
https://www.ptt.cc/bbs/graduate/M.1542677436.A.9B9.html
For any admission questions, contact help@cs.nycu.edu.tw
Q: Disclaimer
A: This is an unofficial experience post and does not represent any official position. All admission, student affairs, course selection, and other rules are subject to the relevant offices.
Q: Conflict of Interest Disclosure
A: While I was writing this, a classmate walked past and asked why I was being so enthusiastic. First-year master's students are already worried about recruitment.
Me: "After all, if we recruit a bunch of idiots next year, it's our cohort that will be affected……"
Me: "Think about it: the people who apply this year will be our juniors next year. If they're not very bright, we might get affected……"