diff --git a/components/Blockquote.module.css b/components/Blockquote.module.css new file mode 100644 index 00000000..64a0c5be --- /dev/null +++ b/components/Blockquote.module.css @@ -0,0 +1,5 @@ +.blockquote { + margin: 0; + padding-left: calc(10rem / 16); + border-left: calc(3rem / 16) solid var(--primary-accent-light); +} diff --git a/components/Blockquote.tsx b/components/Blockquote.tsx new file mode 100644 index 00000000..51ece282 --- /dev/null +++ b/components/Blockquote.tsx @@ -0,0 +1,13 @@ +import React, { ReactNode } from "react"; + +import styles from "./Blockquote.module.css"; + +export interface Props { + children: ReactNode; +} + +export function Blockquote(props: Props) { + return ( +
{props.children}
+ ); +} diff --git a/content/resources/advice/academic-advice.md b/content/resources/advice/academic-advice.md new file mode 100644 index 00000000..e7f4d279 --- /dev/null +++ b/content/resources/advice/academic-advice.md @@ -0,0 +1,21 @@ +## Academic Advice + +#### How can I create study groups without risking academic infidelity? + +Find a nice group of people that you study well with and meet every once in a while to work on things together, you can do that generally by asking around via messaging platforms/office hours. To avoid plagiarism, avoid discussing intricate details of the solution but rather bounce ideas off one another, and leave yourself 30 minutes after the meeting before you write up a solution. + +#### How can I make sure that I understand the course content? + +Try to complete your assignments without consulting your notes. It will be very challenging to do if you are not very confident in the content and is a good indicator that you need to understand the content better! Try to review it again and do the assignment without referring back to it. + +#### What can I do when I feel unmotivated? + +Try to manage your pace when it comes to work. It’s really easy to burn out and lose motivation in the middle to end of the term, when you need it the most. Give yourself a breather and take breaks! + +#### How can I enjoy the school term when it becomes stressful? + +Assignments can be pretty endless, so make sure you celebrate your small wins. Modularize your tasks and reflect on all the work you’ve done over a period of time. It’s often much more than you think. + +#### Who can I go to when I have an issue regarding a course? + +If you have issues regarding courses, there are MathSoc class representatives who can help voice your concerns to involved faculty members. diff --git a/content/resources/advice/academic-advice.mdx b/content/resources/advice/academic-advice.mdx deleted file mode 100644 index aed52b15..00000000 --- a/content/resources/advice/academic-advice.mdx +++ /dev/null @@ -1,16 +0,0 @@ -## Academic Advice - -Find a nice group of people that you study well with and meet every once in a while to work on things together, -you can do that generally by asking around via messaging platforms/office hours. To avoid plagiarism, avoid discussing -intricate details of the solution but rather bounce ideas off one another, and leave yourself 30 minutes after the meeting -before you write up a solution - -Try to complete your assignments without consulting your notes. It will be very challenging to do if you are not very confident -in the content and is a good indicator that you need to understand the content better! Try to review it again and do the -assignment without referring back to it. - -Try to manage your pace when it comes to work. It’s really easy to burn out and lose motivation in the middle to end of the term, -when you need it the most. Give yourself a breather and take breaks! - -Assignments can be pretty endless, so make sure you celebrate your small wins. Modularize your tasks and reflect on all the -work you’ve done over a period of time. It’s often much more than you think. diff --git a/content/resources/advice/co-op-advice.md b/content/resources/advice/co-op-advice.md new file mode 100644 index 00000000..d3118c8c --- /dev/null +++ b/content/resources/advice/co-op-advice.md @@ -0,0 +1,95 @@ +## Coop Advice + +### Finding a co-op + +#### How can I increase my chance of finding a good co-op? + +Start looking for a co-op early. Although WaterlooWorks is quite reliable, there are many more opportunities outside of the job board. Being able to apply for jobs externally not only prepares you to look for jobs full time but it also provides a way to start your study term without having to worry about looking for a co-op. + + + +### First few weeks of co-op - Starting off strong so your team gives you more important projects to work on + +#### What are some things I can do to better understand the context of my work? + +If you have spent time diving into the codebase but you still are confused, schedule time with your mentor/coworkers to have a code base walk through. Write up questions to ask during the meeting and take notes of unclear parts of the code. + +#### What are some easy steps to produce cleaner code? + +Check over your code at least twice before submitting your code review. Reviewing the code a second time may help you catch minor issues and/or problematic code that your reviewers may or may not comment on. If you are unable to figure out a solution to an issue, then reach out to someone for help rather than implementing a hacky solution. You will be more aware of your coding quality, less prone to ignoring issues, and overall be a more responsible developer. + +#### How can I improve the onboarding process? + +Document any blockers you faced during onboarding, and how you overcame them because chances are others will face them too. These can be tips/advice you would give new hires. Feel free to share these findings with your team, because they want to make the onboarding process more efficient and up to date for future hires. Some examples of things to take note of are outdated/incorrect/missing documentation and the way the team does a specific task. + +### Work life balance? + +#### What can I do to feel less stressed from my co-op workday? + +Create rituals for starting your day and ending your day. Studies have shown that not having a post work activity makes it harder to not think about work which leads to burn out and reduced productivity. Start your day by thinking about what you want to achieve and how you want to feel. End your day by doing an activity i.e exercising, listing todos for tomorrow, or even reflecting about the work day! This may help you have a more balanced lifestyle. + +#### How can I stay on top of my tasks during a workday? + +Set up a system to stay on top of your work. This can be as simple as setting up a to-do list ready for the day. The important thing is to be clear and intentional with your goals each day so you can optimize your focus on getting things done. + +### Asking for help + +#### How can I balance between solving problems on my own and asking for help? + +To make the best use of your time, set a time limit on how long you spend on the problem (e.g. 1 hour before you ask for help). Asking for help on an issue you’ve been stuck on for some time can be beneficial. It’s much better to take an hour of your mentor/boss’ time than to be stuck for days without any results. The solution may be team/organization specific and asking can save a lot of time. Be sure to try your best to solve the problem on your own first to maximize your ability to learn. + +### Getting feedback + +#### How do I ask for feedback during a work term? + +Asking for feedback from your manager/mentor throughout the term can go a long way. You can ask about your performance in certain areas and ways you can improve. These feedbacks can help determine what you should continue and/or change. For example, you can ask about their expectations and how you can achieve a specific rating on the employer co-op rating to set up specific goals. + +### Performance evaluation + +#### How can I ensure that I am satisfying my manager's expectations during a work term? + +Around the middle of the term, ask to go over your co-op evaluation form with your manager. In doing so, you will be able to modify your current goals to match/exceed your manager’s expectations. This is especially helpful for you to determine how you can achieve the co-op rating you want. + +### Networking + +#### How can I network effectively during a coop term? + +Meeting and networking with people in and outside your team is an amazing way to learn and meet new people. Coffee chats are a great way to learn about interesting roles and tasks others around the company perform. Try to set up coffee chats with others at your company as you might meet an amazing connection or learn about a really neat topic. This may lead to an idea of what you want to do in your future co-ops. A format you can use is: “Hey, I'm the new intern of [manager] and I was wondering if I could put something on your calendar so I can get to know you and your work a little better.” + +### Code related advice + +#### How can I efficiently ensure that my code is functional? + +Aim to make most/all of your code testable. This will ensure the code is functioning properly and will save time debugging in the future. This is a useful skill to have as a developer. + +#### How do I handle push requests on GitHub? + +Each push request (PR) should focus on a very specific change/feature. Modularizing the changes will make reviewing the PR easier and quicker. + +### Compensation + +#### How can I negotiate compensation for an offer when I have other competing offers? + +Negotiating compensation for an offer when you already have competing offers can be very beneficial for you and it’s normal to do. For a general guide, you can use the format: + +> Hello [Name of recruiter], +> +> I am very interested in working [company name]. I have been given an opportunity at [another company name] that is offering [compensation]. Would it be possible for [the company name] to match/increase the compensation? +> +> Thank you, +> +> [Name] + +#### How can I negotiate compensation when I do not have other competing offers? + +If you do not have competing offers you can still try to negotiate using the format: + +> Hello [Name of recruiter], +> +> Given my experiences, would it be possible to increase the compensation to [compensation]? +> +> Thank you, +> +> [Name] + +Either way, it does not hurt to try as the worst they can say is no. diff --git a/content/resources/advice/co-op-advice.mdx b/content/resources/advice/co-op-advice.mdx deleted file mode 100644 index 1e65bbaa..00000000 --- a/content/resources/advice/co-op-advice.mdx +++ /dev/null @@ -1,98 +0,0 @@ -## Co-op Advice - -Although WaterlooWorks is quite reliable, there are many more opportunities outside of the job board. -Being able to apply for jobs externally not only prepares you to look for jobs full time but it also -provides a way to start your study term without having to worry about looking for a co-op. - - -Create rituals for starting your day and ending your day. Studies have shown that not having a post work activity -makes it harder to not think about work which leads to burn out and reduced productivity. Start your day by thinking -about what you want to achieve and how you want to feel. End your day by doing an activity i.e exercising, listing -todos for tomorrow, or even reflecting about the work day! This may help you have a more balanced lifestyle. - - -To make the best use of your time, set a time limit on how long you spend on the problem (e.g. 1 hour before -you ask for help). Asking for help on an issue you’ve been stuck on for some time can be beneficial. It’s much -better to take an hour of your mentor/boss’ time than to be stuck for days without any results. The solution -may be team/organization specific and asking can save a lot of time. Be sure to try your best to solve the -problem on your own first to maximize your ability to learn. - - -If you have spent time diving into the codebase but you still are confused, schedule time with your mentor/coworkers -to have a code base walk through. Write up questions to ask during the meeting and take notes of unclear parts of the code. - - -Check over your code at least twice before submitting your code review. Reviewing the code a second time may -help you catch minor issues and/or problematic code that your reviewers may or may not comment on. If you are -unable to figure out a solution to an issue, then reach out to someone for help rather than implementing a -hacky solution. You will be more aware of your coding quality, less prone to ignoring issues, and overall -be a more responsible developer. - - -Asking for feedback from your manager/mentor throughout the term can go a long way. You can ask about your -performance in certain areas and ways you can improve. These feedbacks can help determine what you should continue -and/or change. For example, you can ask about their expectations and how you can achieve a specific rating on -the employer co-op rating to set up specific goals. - - -Around the middle of the term, ask to go over your co-op evaluation form with your manager. In doing so, you will -be able to modify your current goals to match/exceed your manager’s expectations. This is especially helpful for -you to determine how you can achieve the co-op rating you want. - - -Meeting and networking with people in and outside your team is an amazing way to learn and meet new people. -Coffee chats are a great way to learn about interesting roles and tasks others around the company perform. -Try to set up coffee chats with others at your company as you might meet an amazing connection or learn about -a really neat topic. This may lead to an idea of what you want to do in your future co-ops. A format you can -use is: “Hey, I'm the new intern of \ and I was wondering if I could put something on your calendar -so I can get to know you and your work a little better.” - - -Aim to make most/all of your code testable. This will ensure the code is functioning properly and will save -time debugging in the future. This is a useful skill to have as a developer. - - -Each push request (PR) should focus on a very specific change/feature. Modularizing the changes will make -reviewing the PR easier and quicker. - - -Set up a system to stay on top of your work. This can be as simple as setting up a to-do list ready for the day. -The important thing is to be clear and intentional with your goals each day so you can optimize your focus on getting things done. - - -Document any blockers you faced during onboarding, and how you overcame them because chances are others will face them too. -These can be tips/advice you would give new hires. Feel free to share these findings with your team, because they want to make -the onboarding process more efficient and up to date for future hires. Some examples of things to take note of are -outdated/incorrect/missing documentation and the way the team does a specific task. - - -Negotiating compensation for an offer when you already have competing offers can be very beneficial for you and it’s normal -to do. For a general guide, you can use the format: - - -------------------------------------------------------------------------------------------------------------------------------- -Hello [Name of recruiter], - -I am very interested in working \[company name\]. I have been given an opportunity at \[another company name\] that is offering \[compensation\]. -Would it be possible for [the company name] to match/increase the compensation. - -Thank you, - -[Name] - -------------------------------------------------------------------------------------------------------------------------------- - -If you do not have competing offers you can still try to negotiate using the format: - -------------------------------------------------------------------------------------------------------------------------------- -Hello \[Name of recruiter\], - -Given my experiences, would it be possible to increase the compensation to [compensation]? - -Thank you, - -[Name] - -------------------------------------------------------------------------------------------------------------------------------- - -Either way, it does not hurt to try as the worst they can say is no. diff --git a/content/resources/advice/misc-advice.md b/content/resources/advice/misc-advice.md new file mode 100644 index 00000000..d0208af9 --- /dev/null +++ b/content/resources/advice/misc-advice.md @@ -0,0 +1,55 @@ +## Social Advice + +#### What is an affordable way to watch movies with friends? + +If you’re looking to watch movies with friends then you can either buy cheaper (Tuesday prices) at the Student Life Center or Waterloo has a list of streaming sites where you can watch free movies. + +#### How can I become more involved on campus? + +Join different clubs or societies! They’re a great way to make friends and manage your time better. Plus, it makes going through a school term much more fun. + +#### How do I build my social skills and get out of my comfort zone? + +Take up the opportunities for meeting people. You never know who you might meet. If you don’t put yourself out there and take chances, it’s much harder to find a relationship, friendships, or even study buddies. + +#### What can I do to prevent being affected by the competitive environment? + +Be kind. Celebrate your friends’ successes when they get a co-op job and support them when they’re struggling too. Waterloo is so competitive and sometimes it can be hard to navigate through, so make sure you’re giving and getting a good support network. + +## Additional Resources + +#### Where can I find the free movie database? + +Along with your tuition fees, part of your library fees grant you access to a database of [free movies](https://media3-criterionpic-com.proxy.lib.uwaterloo.ca/htbin/wwform/006/wwk770?&kw=zkcode%7C000005%7C) + +#### What are some links to SE discord servers? + +SE servers: + +- [discord.gg/ZtmRPc59](https://discord.gg/ZtmRPc59) +- [discord.gg/XyQtsfe5](https://discord.gg/XyQtsfe5) + +#### What are some resources for interview prep? + +- Group Leetcode server: +[discord.gg/kwCsCNb3](https://discord.gg/kwCsCNb3) + +There are many online resources for interview preparation including https://evykassirer.github.io/playing-the-internship-game/ and https://github.com/viraptor/reverse-interview + +- Internship/Interview advice +https://www.techintern.io/ + +#### Where can I access eBooks? + +https://subjectguides.uwaterloo.ca/compsci/books + +More specifically O'Reilly Higher education: https://learning-oreilly-com.proxy.lib.uwaterloo.ca/home +There are a lot of helpful books/videos that can teach you a variety of things from finance to leadership to a variety of cs topics! (With recommendations, case studies and playlist to help you get started) + +#### What is the link to the GPUs? + +We have GPUs: https://uwaterloo.ca/math-faculty-computing-facility/services/service-catalogue-teaching-linux/access-teaching-gpu-cluster + +#### Where can I find all of the math faculty services? + +https://uwaterloo.ca/math-faculty-computing-facility/services \ No newline at end of file diff --git a/content/resources/advice/misc-advice.mdx b/content/resources/advice/misc-advice.mdx deleted file mode 100644 index d5c2d44b..00000000 --- a/content/resources/advice/misc-advice.mdx +++ /dev/null @@ -1,42 +0,0 @@ -## Social Advice - -If you’re looking to watch movies with friends then you can either buy cheaper (Tuesday prices) -at the Student Life Center or Waterloo has a list of streaming sites where you can watch free movies. - -Join different clubs or societies! They’re a great way to make friends and manage your time better. -Plus, it makes going through a school term much more fun. - -Take up the opportunities for meeting people. You never know who you might meet. If you don’t put -yourself out there and take chances, it’s much harder to find a relationship, friendships, or even study buddies. - -Be kind. Celebrate your friends’ successes when they get a co-op job and support them when they’re struggling -too. Waterloo is so competitive and sometimes it can be hard to navigate through, so make sure you’re giving -and getting a good support network. -Additional Resources - -Along with your tuition fees, part of your library fees grant you access to a database of [free movies](https://media3-criterionpic-com.proxy.lib.uwaterloo.ca/htbin/wwform/006/wwk770?&kw=zkcode%7C000005%7C) - -SE servers: - -[discord.gg/ZtmRPc59](https://discord.gg/ZtmRPc59) - -[discord.gg/XyQtsfe5](https://discord.gg/XyQtsfe5) - -Group Leetcode server: -[discord.gg/kwCsCNb3](https://discord.gg/kwCsCNb3) - -There are many online resources for interview preparation including https://evykassirer.github.io/playing-the-internship-game/ and https://github.com/viraptor/reverse-interview - -If you have issues regarding courses, there are MathSoc class representatives who can help voice your concerns to involved faculty members. - -Access to eBooks: https://subjectguides.uwaterloo.ca/compsci/books - -More specifically O'Reilly Higher education: https://learning-oreilly-com.proxy.lib.uwaterloo.ca/home -There are a lot of helpful books/videos that can teach you a variety of things from finance to leadership to a variety of cs topics! (With recommendations, case studies and playlist to help you get started) - -We have GPUs: https://uwaterloo.ca/math-faculty-computing-facility/services/service-catalogue-teaching-linux/access-teaching-gpu-cluster - -List of math faculty services: https://uwaterloo.ca/math-faculty-computing-facility/services - -Internship/Interview advice -https://www.techintern.io/ diff --git a/next.config.js b/next.config.js index bfccd253..a247b8c8 100644 --- a/next.config.js +++ b/next.config.js @@ -1,9 +1,9 @@ const withMDX = require("@next/mdx")({ - extension: /\.mdx$/, + extension: /\.mdx?$/, }); module.exports = withMDX({ - pageExtensions: ["ts", "tsx", "mdx"], + pageExtensions: ["ts", "tsx"], trailingSlash: true, basePath: process.env.NEXT_PUBLIC_BASE_PATH, eslint: { ignoreDuringBuilds: true }, diff --git a/pages/_app.tsx b/pages/_app.tsx index 8cd0f13b..e33deb74 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -3,6 +3,7 @@ import { NextComponentType, NextPageContext } from "next"; import { AppProps as DefaultAppProps } from "next/app"; import React, { ComponentType, ReactNode } from "react"; +import { Blockquote } from "@/components/Blockquote"; import { Button } from "@/components/Button"; import { Code } from "@/components/Code"; import { DefaultLayout } from "@/components/DefaultLayout"; @@ -39,6 +40,7 @@ export default function App({ Component, pageProps }: AppProps): JSX.Element { inlineCode: Code, img: Image, table: Table, + blockquote: Blockquote, }} >
diff --git a/pages/resources/advice/academic.tsx b/pages/resources/advice/academic.tsx index bf451981..76ecf008 100644 --- a/pages/resources/advice/academic.tsx +++ b/pages/resources/advice/academic.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Title } from "@/components/Title"; -import Content from "../../../content/resources/advice/academic-advice.mdx"; +import Content from "../../../content/resources/advice/academic-advice.md"; import { Advice } from "./co-op"; diff --git a/pages/resources/advice/co-op.tsx b/pages/resources/advice/co-op.tsx index c1831540..32ecd549 100644 --- a/pages/resources/advice/co-op.tsx +++ b/pages/resources/advice/co-op.tsx @@ -5,7 +5,7 @@ import React, { ReactNode } from "react"; import { Image } from "@/components/Image"; import { Title } from "@/components/Title"; -import Content from "../../../content/resources/advice/co-op-advice.mdx"; +import Content from "../../../content/resources/advice/co-op-advice.md"; import styles from "./co-op.module.css"; diff --git a/pages/resources/advice/misc.tsx b/pages/resources/advice/misc.tsx index 31ebc6eb..1232a417 100644 --- a/pages/resources/advice/misc.tsx +++ b/pages/resources/advice/misc.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Title } from "@/components/Title"; -import Content from "../../../content/resources/advice/misc-advice.mdx"; +import Content from "../../../content/resources/advice/misc-advice.md"; import { Advice } from "./co-op"; diff --git a/types.d.ts b/types.d.ts index 60922028..9868d525 100644 --- a/types.d.ts +++ b/types.d.ts @@ -86,3 +86,11 @@ declare module "*.mdx" { export default ReactComponent; } + +declare module "*.md" { + import { ComponentType } from "react"; + + const ReactComponent: ComponentType; + + export default ReactComponent; +}