- Think of something briliant (easy, right :D)
- Find a university / investor to finance you.
- Work hard
or get a job, save up money and finance yourself.
1. Overpaying on Auto Insurance
Believe it or not, the average American family still overspends by $461/year¹ on car insurance.
Sometimes it’s even worse: I switched carriers last year and saved literally $1,300/year.
Here’s how to quickly see how much you’re being overcharged (takes maybe a couple of minutes):
- Pull up Coverage.com – it’s a free site that will compare offers for you
- Answer the questions on the page
- It’ll spit out a bunch of insurance offers for you.
That’s literally it. You’ll likely save yourself a bunch of money.
2. Overlook how much you can save when shopping online
Many people over
1. Overpaying on Auto Insurance
Believe it or not, the average American family still overspends by $461/year¹ on car insurance.
Sometimes it’s even worse: I switched carriers last year and saved literally $1,300/year.
Here’s how to quickly see how much you’re being overcharged (takes maybe a couple of minutes):
- Pull up Coverage.com – it’s a free site that will compare offers for you
- Answer the questions on the page
- It’ll spit out a bunch of insurance offers for you.
That’s literally it. You’ll likely save yourself a bunch of money.
2. Overlook how much you can save when shopping online
Many people overpay when shopping online simply because price-checking across sites is time-consuming. Here is a free browser extension that can help you save money by automatically finding the better deals.
- Auto-apply coupon codes – This friendly browser add-on instantly applies any available valid coupon codes at checkout, helping you find better discounts without searching for codes.
- Compare prices across stores – If a better deal is found, it alerts you before you spend more than necessary.
Capital One Shopping users saved over $800 million in the past year, check out here if you are interested.
Disclosure: Capital One Shopping compensates us when you get the browser extension through our links.
3. Not Investing in Real Estate (Starting at Just $20)
Real estate has long been a favorite investment of the wealthy, but owning property has often felt out of reach for many—until now.
With platforms like Ark7, you can start investing in rental properties with as little as $20 per share.
- Hands-off management – Ark7 takes care of everything, from property upkeep to rent collection.
- Seamless experience – Their award-winning app makes investing easy and efficient.
- Consistent passive income – Rental profits are automatically deposited into your account every month.
Now, you can build your own real estate portfolio without needing a fortune. Ready to get started? Explore Ark7’s properties today.
4. Wasting Time on Unproductive Habits
As a rule of thumb, I’d ignore most sites that claim to pay for surveys, but a few legitimate ones actually offer decent payouts.
I usually use Survey Junkie. You basically just get paid to give your opinions on different products/services, etc. Perfect for multitasking while watching TV!
- Earn $100+ monthly – Complete just three surveys a day to reach $100 per month, or four or more to boost your earnings to $130.
- Millions Paid Out – Survey Junkie members earn over $55,000 daily, with total payouts exceeding $76 million.
- Join 20M+ Members – Be part of a thriving community of over 20 million people earning extra cash through surveys.
With over $1.6 million paid out monthly, Survey Junkie lets you turn spare time into extra cash. Sign up today and start earning from your opinions!
5. Paying off credit card debt on your own
If you have over $10,000 in credit cards - a debt relief program could help you lower your total debt by an average of 23%.
- Lower your total debt – National Debt Relief works with creditors to negotiate and settle your debt for less than you owe.
- One affordable monthly payment – Instead of managing multiple bills, consolidate your payments into one simple, structured plan.
- No upfront fees – You only pay once your debt is successfully reduced and settled, ensuring a risk-free way to tackle financial burdens.
Simple as that. You’ll likely end up paying less than you owed and could be debt free in 12-24 months. Here’s a link to National Debt Relief.
6. Overspending on Mortgages
Overpaying on your mortgage can cost you, but securing the best rate is easy with Bankrate’s Mortgage Comparison Tool.
- Compare Competitive Rates – Access top mortgage offers from trusted lenders.
- Personalized results – Get tailored recommendations based on your financial profile.
- Expert resources – Use calculators to estimate monthly payments and long-term savings.
Don’t let high rates limit your financial flexibility. Explore Bankrate’s Mortgage Comparison Tool today and find the right mortgage for your dream home!
7. Ignoring Home Equity
Your home can be one of your most valuable financial assets, yet many homeowners miss out on opportunities to leverage its equity. Bankrate’s Best Home Equity Options helps you find the right loan for renovations, debt consolidation, or unexpected expenses.
- Discover top home equity loans and HELOCs – Access competitive rates and terms tailored to your needs.
- Expert tools – Use calculators to estimate equity and project monthly payments.
- Guided decision-making – Get insights to maximize your home’s value while maintaining financial stability.
Don’t let your home’s value go untapped. Explore Bankrate’s Best Home Equity Options today and make your equity work for you!
8. Missing Out on Smart Investing
With countless options available, navigating investments can feel overwhelming. Bankrate’s Best Investing Options curates top-rated opportunities to help you grow your wealth with confidence.
- Compare investments – Explore stocks, ETFs, bonds, and more to build a diversified portfolio.
- Tailored insights – Get tailored advice to match your financial goals and risk tolerance.
- Maximize returns – Learn strategies to optimize investments and minimize risks.
Take control of your financial future. Explore Bankrate’s Best Investing Options today and start building a stronger portfolio today!
Disclaimer:
Found is a financial technology company, not a bank. Business banking services are provided by Piermont Bank, Member FDIC. The funds in your account are FDIC-insured up to $250,000 per depositor for each account ownership category. Advanced, optional add-on bookkeeping software available with a Found Plus subscription. There are no monthly account maintenance fees, but transactional fees for wires, instant transfers, and ATM apply. Read more here: Fee Schedule
If you're capable of thinking for yourself, reading, and developing ideas, then you can perform research on your own.
That being said, it will depend on what type of research you are doing. If you need grants, you can probably apply for small ones on your own, but its a lot of work for larger amounts of money. If you need a team, that might be difficult to assemble. If you need to perform experiments with people, that might be hard to organize.
There are some types of research that will lend themselves really well to working on your own. Theoretical research, math, investigative research. Anyt
If you're capable of thinking for yourself, reading, and developing ideas, then you can perform research on your own.
That being said, it will depend on what type of research you are doing. If you need grants, you can probably apply for small ones on your own, but its a lot of work for larger amounts of money. If you need a team, that might be difficult to assemble. If you need to perform experiments with people, that might be hard to organize.
There are some types of research that will lend themselves really well to working on your own. Theoretical research, math, investigative research. Anytime you are working on and proposing new ideas or different ways of looking at a problem. Often times it is young people who can offer fresh perspectives on things and who don't get caught up in the traditional ways of doing things. Einstein, Noam Chomsky, and countless others were capable of creating big ideas from their own imaginitie perspective.
The one thing is though, that if you feel you don't have enough expertise, you can always learn the material. You can ask profs to explain topics anytime you have questions, I find profs like to discuss any topic with students. You can pick up any book and learn the material. Start a discussion on Quora or Stack Overflow if you need help. And understand your own limitations. There are some tasks that will be very difficult for you to accomplish at this point in time.
I'm doing some theoretical artificial intelligence research on my own as an undergrad, and I think it's the best way for me to to work on my ideas. I just read books and papers, sit outside and think, and write notes on the ideas that I develop. Years of experience isn't always required to produce something exciting.
I am in a similar place to where you are standing right now in terms of this issue. I don't come from the best engineering college in India and hence it has been a struggle to get my work recognized or get my ideas out. I plan to pursue research too. So, I would suggest you to follow these steps that I did to get to a conclusion about where I would like to pursue my research. I call this Dream Mapping[Because it is my dream to pursue research in CS. It may sound silly but it works!] :) :
1> First make a list of all the interesting topics[with possibility of research] in computer science.
2>The
I am in a similar place to where you are standing right now in terms of this issue. I don't come from the best engineering college in India and hence it has been a struggle to get my work recognized or get my ideas out. I plan to pursue research too. So, I would suggest you to follow these steps that I did to get to a conclusion about where I would like to pursue my research. I call this Dream Mapping[Because it is my dream to pursue research in CS. It may sound silly but it works!] :) :
1> First make a list of all the interesting topics[with possibility of research] in computer science.
2>Then list do a SWOT analysis of each topic.[S-Strengths, W-Weaknesses, O-Opportunities, T-Threats]
3>I am sure that in step 2 you will have eliminated almost of your choices.Narrow down on future prospects for the remaining choices[I suggest to leave not more than 3]. You don't want to be working with dormant technology.
4>You will have narrowed down to 1 to 2 topics. I had 2 left till this stage but if you have one left, you know that is the one you should be working for. If you still have 2, do an exhaustive search on each topic.
5>Most importantly ask yourself:
"Will I be happy doing this for the next , say , 10 years of my life?"
If it is a yes then go ahead to step 6. If it is a no for then don't even bother reading the rest of the answer.
6>Start reading up about it. You should know your topic and its related sub topics inside out. Start reading journals and when you are at a better place, try writing a paper[ no pressure there :) ] .
7> There are a lot of wonderful professors and scientists out there who are easily available to everyone. You just have to "go out there and grab their attention". Send your research paper or send them back your thoughts on their papers and take the conversation from there. Obviously these should be people relevant to your field of research.You need a guide or a mentor. It will be very difficult without one. And need I so blatantly say, next to impossible to pursue any form of research without some guided wisdom and help.
8>The WWW is one of the greatest gifts from mankind to mankind.You cannot complain that the college or professors are still in the box TV era. You have to feed yourself, you have to take charge for your own research. There is a lot of material available on the internet which you can use to your advantage. Here is a link on some useful software tools for academic research:
10 Great Tools for Academic Research You Should Know about
People whom you refer for your work[as I pointed out in 9] ,will be the best judges on how to move ahead from here. The most important thing is deciding your topic. I cannot stress how important this is. Be very specific.
9>Don't fall prey to local journals to publish your paper. Be wary of copyrights and patents while you write your paper. References are an equally important of a research paper. Try going for National, International or Peer Reviewed journals to publish your research. That would get you just enough attention to take your research further.
10>With a lot of hard work and hopefully a bit of my Dream Mapping you should reach your topic and hopefully your research paper should be well on its way to be recognized. I do expect a thank you email after it's done. :D
Cheers :)
If you expect to do it for some kind of career, don’t—see the “self-study” SECTION in this.
https://www.quora.com/How-do-you-decide-what-career-is-best-for-you/answer/Joseph-ReinckensAbsolutely. With online platforms such as BetterHelp, you are able to speak and work with a licensed therapist in the comfort of your own home.
BetterHelp has quickly become the largest online therapy service provider. With over 5 million users to date, and 30K+ licensed therapists, BetterHelp is here to provide professional, affordable, and personalized therapy in a convenient online format.
By simply taking a short quiz, BetterHelp will match you with an online therapist based on your needs and preferences, all while never leaving the comfort of your own home. You can choose between video, aud
Absolutely. With online platforms such as BetterHelp, you are able to speak and work with a licensed therapist in the comfort of your own home.
BetterHelp has quickly become the largest online therapy service provider. With over 5 million users to date, and 30K+ licensed therapists, BetterHelp is here to provide professional, affordable, and personalized therapy in a convenient online format.
By simply taking a short quiz, BetterHelp will match you with an online therapist based on your needs and preferences, all while never leaving the comfort of your own home. You can choose between video, audio-only, or even live chat messaging sessions making your therapy experience completely customizable to you.
To get started today, simply fill out this short form.
By either getting a job in the field, or by joining one of the large projects out there already. Doing so will get you experience, develop contacts, and most importantly, will help you identify areas in the field where there is a need for better mousetrap.
The size of the project that you envision will pretty much determine whether or not you’ll be able to do this on your own; or whether you’ll need to use those contacts you’ve been developing to help you work on the project, as well as to secure funding to get it up and running.
Is it possible? Yes. You can always do research by yourself and make the Internet your friend. Also work with the many helpful researchers out there. For example, in the SDN networking space, you can hang out at the OpenFlow or POX or Mininet groups and get a ton of great advice there.
Is it practical? Unfortunately, No. Educational in stations are conservative. In most cases, they require an on institution adviser to do the paperwork for the project. Advisers also recommend the defense panels and argue that your work in worth doing. It just easier if you had one.
Where do I start?
I’m a huge financial nerd, and have spent an embarrassing amount of time talking to people about their money habits.
Here are the biggest mistakes people are making and how to fix them:
Not having a separate high interest savings account
Having a separate account allows you to see the results of all your hard work and keep your money separate so you're less tempted to spend it.
Plus with rates above 5.00%, the interest you can earn compared to most banks really adds up.
Here is a list of the top savings accounts available today. Deposit $5 before moving on because this is one of th
Where do I start?
I’m a huge financial nerd, and have spent an embarrassing amount of time talking to people about their money habits.
Here are the biggest mistakes people are making and how to fix them:
Not having a separate high interest savings account
Having a separate account allows you to see the results of all your hard work and keep your money separate so you're less tempted to spend it.
Plus with rates above 5.00%, the interest you can earn compared to most banks really adds up.
Here is a list of the top savings accounts available today. Deposit $5 before moving on because this is one of the biggest mistakes and easiest ones to fix.
Overpaying on car insurance
You’ve heard it a million times before, but the average American family still overspends by $417/year on car insurance.
If you’ve been with the same insurer for years, chances are you are one of them.
Pull up Coverage.com, a free site that will compare prices for you, answer the questions on the page, and it will show you how much you could be saving.
That’s it. You’ll likely be saving a bunch of money. Here’s a link to give it a try.
Consistently being in debt
If you’ve got $10K+ in debt (credit cards…medical bills…anything really) you could use a debt relief program and potentially reduce by over 20%.
Here’s how to see if you qualify:
Head over to this Debt Relief comparison website here, then simply answer the questions to see if you qualify.
It’s as simple as that. You’ll likely end up paying less than you owed before and you could be debt free in as little as 2 years.
Missing out on free money to invest
It’s no secret that millionaires love investing, but for the rest of us, it can seem out of reach.
Times have changed. There are a number of investing platforms that will give you a bonus to open an account and get started. All you have to do is open the account and invest at least $25, and you could get up to $1000 in bonus.
Pretty sweet deal right? Here is a link to some of the best options.
Having bad credit
A low credit score can come back to bite you in so many ways in the future.
From that next rental application to getting approved for any type of loan or credit card, if you have a bad history with credit, the good news is you can fix it.
Head over to BankRate.com and answer a few questions to see if you qualify. It only takes a few minutes and could save you from a major upset down the line.
How to get started
Hope this helps! Here are the links to get started:
Have a separate savings account
Stop overpaying for car insurance
Finally get out of debt
Start investing with a free bonus
Fix your credit
You READ. You read a lot. Start by reading a book, then its cited references, then the most recent literature in a topic of interest. At some point, you will identify a problem. Then, the challenge will be to find the solution.
I think that there are many, many models. But here is mine:
- I look for something that I don't fully understand among the things that I know rather well. That is, I look for gaps in knowledge. There are many such things, so I pick one that feels useful and interesting. Concrete examples: (A) someone came up with a cool new algorithm that works very, very well, but I don't really understand why it works so well (B) someone has proved a result, but though I can follow the theory, I don't really understand what makes it tick.
- I then proceed to do quick experiments using software I program. If I am e
I think that there are many, many models. But here is mine:
- I look for something that I don't fully understand among the things that I know rather well. That is, I look for gaps in knowledge. There are many such things, so I pick one that feels useful and interesting. Concrete examples: (A) someone came up with a cool new algorithm that works very, very well, but I don't really understand why it works so well (B) someone has proved a result, but though I can follow the theory, I don't really understand what makes it tick.
- I then proceed to do quick experiments using software I program. If I am examining a claim made by other researchers, it is not uncommon that I cannot reproduce their results. If I examine some theoretical results, it is not uncommon that the strength of the result is really underwhelming in practice. Anyhow, through cheap experiments, I usually gain extra insight that is not available in the literature.
- I then proceed to write more serious software and to do more serious theory. I collect random notes as I go along.
- At some point, I have enough for a research paper in my notes and so I clean it up and publish it. Often this corresponds to a point where I went as far as I knew how.
It is important to realize what I am not doing. I am not taking an existing approach and trying to improve upon it. This often happens, but it is more of a consequence to the question "could we improve this technique?" My driver is really curiosity. I am also not trying to "solve new problems". Not that it is not a good idea, but I don't purposefully try to ask new questions. In fact, I am sure I am asking myself all the same questions others are asking. The reason I end up with a research paper is that I keep pursuing my questions for a long time.
Oh! And I also have no set plan. I don't know what I'll find out.
Some parts of CS u can self study having followed the lecturer in class ,but combined study with friends helps a lot
I was in a similar situation like yours in my second and third year. Here is what I would suggest you to do:
- Pick up your field: By field I do not mean "Computer Science", but a field in Computer Science. There are many fields in Computer Science like Operating Systems, Computer Architecture, Compilers, Programming Languages, Parallel Computing, Machine Learning, Artificial Intelligence, Natural Language Processing, Theoretical Computer Science. Pick one of them in which you have interest. For example, my field is Computer Systems which includes Computer Architecture, Operating Systems, Compil
I was in a similar situation like yours in my second and third year. Here is what I would suggest you to do:
- Pick up your field: By field I do not mean "Computer Science", but a field in Computer Science. There are many fields in Computer Science like Operating Systems, Computer Architecture, Compilers, Programming Languages, Parallel Computing, Machine Learning, Artificial Intelligence, Natural Language Processing, Theoretical Computer Science. Pick one of them in which you have interest. For example, my field is Computer Systems which includes Computer Architecture, Operating Systems, Compilers, Parallel Computing and some part of Programming Languages also.
- Start Learning about the field from MOOC or NPTEL. Trust me I found NPTEL lectures really good.
- If possible find a senior who has been doing research in your field and take his guidance. There are many prerequisites to study these fields and they have to be studied before you study these fields. Even these prerequisites has their own prerequisites. Your senior could tell you which subjects to study and which not.
- Develop your own personal projects related to these fields. This will not only help you understand the concepts better but will also build your profile.
- Try to get an internship at IISc or an IIT even if it is unfunded at the end of your second year. Yes, unfunded. If it is funded that is good but if it is unfunded still then you should go. If you did good work this will help build your profile and you can also get a good recommendation from the professor.
- Continue your learning and if possible continue working with your prof in third year also and see if you can get a research paper published out of it. With published I do not mean in a Low Tier journal/conference but atleast a Tier-2 journal/conference.
- Apply for various research internship both foreign and national at the end of your third year. Your profile will be very helpful now. If you have good profile till now then you should get a foreign research internship.
- In fourth year, you can apply to PhD programs.
Also, remember to maintain good pointers/percentage especially in the courses related to your field.
Do not think that learning basic Computer Science courses like Data Structures, Algorithms etc. are not required if it is not your field. These indeed are required if you are a software engineer or a researcher.
Okay, so the easiest way in is usually just emailing professors whose research interests you . Seriously , dont overthink it. I mean , you gotta find someone whos doing stuff that sounds kinda cool, right? And then you just , you know, write a short email . It doesnt have to be fancy , just polite. I remember I was so nervous my first time , my hands were all sweaty, I almost didnt send it ! But I did, and it worked out . Some profs are super busy , so dont get discouraged if you dont hear back right away. Or ever , honestly . Some just dont take undergrads. That's just the way it is . But oth
Okay, so the easiest way in is usually just emailing professors whose research interests you . Seriously , dont overthink it. I mean , you gotta find someone whos doing stuff that sounds kinda cool, right? And then you just , you know, write a short email . It doesnt have to be fancy , just polite. I remember I was so nervous my first time , my hands were all sweaty, I almost didnt send it ! But I did, and it worked out . Some profs are super busy , so dont get discouraged if you dont hear back right away. Or ever , honestly . Some just dont take undergrads. That's just the way it is . But others, they really like having extra hands , you know ? Free labor is awesome for them , helps them get things done faster . Its a win-win situation, really . You get experience and they get help . And its not always just coding, either. Theres often data entry , writing reports stuff like that . It depends on the lab , and the prof of course . My first research gig ? I was making charts and graphs for weeks ! It was kinda boring sometimes , but I learned a bunch . And you meet other people too , grad students , other undergrads, it's a whole social thing. Kinda like a club, but more nerdy , you know? And I kinda sucked at networking before that, so this whole experience totally helped me out . You'll probably want to look at the professors' websites, see what theyre working on . And maybe even read a few of their papers , to sound a little more knowledgeable when you email . But dont stress about it too much, just be honest and say youre interested and wanting to learn . Dont be afraid to ask questions, either! I always found that made a good impression. Its more about showing enthusiasm then anything. A lot of my friends got rejected , then emailed again a year later, and this time it worked out . Persistence is a big deal, it really is . Anyway , yeah. Emailing is key. Its kinda scary, but its worth it . You just gotta do it . Check out my bio for more info on some specific professors I contacted , and the kinds of labs you might want to look into .
The first step is to research the professors in your department. Find one that does work you are interested in and read it. Next, email the professor saying, how awesome his/her work is, that you read this paper and find it fascinating and ask if he has time to to chat, provide advice and in particular if he/she has any undergraduate level problems. Most professors enjoy highly motivated students.
Be proactive, but not annoying.
[A2A] My experience is not that different from Richard Feynman’s advice, which went something like this:
- Find a problem you like whose answer you don’t know.
- Solve it (using some combination of prior knowledge, raw brainpower, collaboration with other smart people, and deep reading of the literature).
- Check to see if anyone else has solved your problem. If not, publish.
- Go back to step 1.
It helps to run multiple instances of this loop in parallel, killing off threads when they stop making progress. (But not too fast; sometimes it takes weeks or even months of steady incremental progress to solve a
[A2A] My experience is not that different from Richard Feynman’s advice, which went something like this:
- Find a problem you like whose answer you don’t know.
- Solve it (using some combination of prior knowledge, raw brainpower, collaboration with other smart people, and deep reading of the literature).
- Check to see if anyone else has solved your problem. If not, publish.
- Go back to step 1.
It helps to run multiple instances of this loop in parallel, killing off threads when they stop making progress. (But not too fast; sometimes it takes weeks or even months of steady incremental progress to solve a good problem.)
When at least 1% of your iterations leads to a publishable result; congratulations! You’ve become a successful computer science researcher!

Marc Millstone's advice is solid. I'd also add that it helps a lot to do well in that professor's class, especially if it's an "in-demand" professor.
I'd also pay attention to subject areas w.r.t. your chances of getting into graduate school later. If your school only has relatively "weak" professors in your desired subject area, you may consider changing to a different subject area (or else transferring to a school with a better faculty in that area).
Okay, so you wanna do CS research as an undergrad? The thing about this is . . . it's way harder than it looks, you know ? I mean , everyone thinks its all cool algorithms and stuff, but its alot of late nights and feeling totally lost . I remember my first project, man , I spent like three weeks staring at a screen, just totally stuck . My advisor was super helpful , dont get me wrong , but it was still brutal. You gotta have a decent base , like, you cant just jump in . Solid data structures and algorithms classes are essential – absolutely essential . And discrete math, dont even think abou
Okay, so you wanna do CS research as an undergrad? The thing about this is . . . it's way harder than it looks, you know ? I mean , everyone thinks its all cool algorithms and stuff, but its alot of late nights and feeling totally lost . I remember my first project, man , I spent like three weeks staring at a screen, just totally stuck . My advisor was super helpful , dont get me wrong , but it was still brutal. You gotta have a decent base , like, you cant just jump in . Solid data structures and algorithms classes are essential – absolutely essential . And discrete math, dont even think about skipping that. Youll be lost without it. Programming skills ? Duh . I mean , really solid programming skills , not just "I can write a loop" level. Think of projects youve done – what projects show you really grasp the fundamentals . And then you gotta be able to communicate what youve done . Writing is a huge part of this its not just coding . Finding a prof to work with ? Thats a whole other ball game. Some are amazing mentors , others . .. well, lets just say their door is always closed . Networking is key , you gotta go to office hours, and dont be afraid to just email people, even if it seems scary. Seriously though , go to office hours. Talk to people , find someone whose research interests you genuinely . Dont just pick the easiest option . You need to be interested in what your working on. Its gonna be alot of work . And be prepared to fail . Alot. Like, you wont get everything right away, its a learning process . Its a process of learning how to learn . And sometimes it'll feel like you're not learning anything at all . And thats ok . Seriously. You gotta be resilient . Ive had projects completely bomb and that's just part of it. So yeah , prepare for long hours , frustration , and a whole lot of learning . But if you actually stick with it, its incredibly rewarding. You learn so much about yourself and your abilities, its not even funny. You might even end up discovering something that makes a difference… maybe . Oh, and check my bio for links to some resources I found helpful – maybe they'll save you some late nights haha .
You must work with a faculty member. Choose a course that you enjoyed and in which you performed well, and contact that faculty member. Ask them about getting involved with research. Do not expect to be paid (at least, not at first).
Self-learning is something that never worked for me in my life, but when it comes to a subject like computers, I still think “the best way to learn is self-learning”. I think it’s because the subject is so broad and there are so many ways to learn it, you never feel like you’re short of learning material. There are so many free resources available on the Internet which can help you learn programming. I know it will be hard to find time, but I believe you can do it.
Self-learning is something that never worked for me in my life, but when it comes to a subject like computers, I still think “the best way to learn is self-learning”. I think it’s because the subject is so broad and there are so many ways to learn it, you never feel like you’re short of learning material. There are so many free resources available on the Internet which can help you learn programming. I know it will be hard to find time, but I believe you can do it.
Devendra Kumar Sahu (dau) wrote a great answer with real advice. You need to give in hard work. To contribute to the knowledge of the world, you must at least know what all is out there.
However it's always better to be part of a research group rather than going for a solo trip from the very first mile. Join a good university with reputed history in the area of AI either for Masters/PhD or working as a Research Assistant (more like a job). Take courses. Work on projects. And slowly get into research.
It will be much challenging alone. Begin by reading books and taking courses. You'll first need
Devendra Kumar Sahu (dau) wrote a great answer with real advice. You need to give in hard work. To contribute to the knowledge of the world, you must at least know what all is out there.
However it's always better to be part of a research group rather than going for a solo trip from the very first mile. Join a good university with reputed history in the area of AI either for Masters/PhD or working as a Research Assistant (more like a job). Take courses. Work on projects. And slowly get into research.
It will be much challenging alone. Begin by reading books and taking courses. You'll first need to begin from statistics/probability, linear algebra, and slowly move into optimization and linear programming. Meanwhile begin with Andrew Ng's course on Machine Learning. For classical AI, go for Peter Norwig's Intro to AI course on Udacity. They also touch basics of application domains like CV, NLP and Robotics.
Meanwhile, be patient. Expertise would take time.
And start reading papers of your interest published in top conferences related to the area of your interest. Try to implement some part of them. See if you can suggest any changes and improve those solutions. You may need to contact researchers for help time to time - don't shy away. And again, research takes time. Be patient.
You will have to take the exact steps and procedures per the university's set protocols., Please meet with the officials, including the Advisor, assigned to you, relevant professors and staff, and orientation, etc., then take the ball and run.
take the appropriate courses and take them seriously. ask your profs about extra research projects.
My first reaction to reading your question was "Oh that's hard!"
However then it occurred to me that one can gain an effective computer science education by aggressively pursuing the answers to four questions.
Question 1. How does this computer work?
Eg
The hardware
The numerous layers of software
The programming languages
The human interface
The networked resources
The social network
(Hint: By "this computer" I mean every computer you come across or read about - your PC, your phone, your car, your company's mainframe, etc.)
Question 2. What can I do with computers?
Eg
Can I personalize this comp
My first reaction to reading your question was "Oh that's hard!"
However then it occurred to me that one can gain an effective computer science education by aggressively pursuing the answers to four questions.
Question 1. How does this computer work?
Eg
The hardware
The numerous layers of software
The programming languages
The human interface
The networked resources
The social network
(Hint: By "this computer" I mean every computer you come across or read about - your PC, your phone, your car, your company's mainframe, etc.)
Question 2. What can I do with computers?
Eg
Can I personalize this computer?
Can I write a program for this computer?
What languages can be used to write a program for this computer?
Can I diagnose problems in this computer?
Can I change or even improve an operating system's code?
(Hint: Do these things.)
Question 3. How can computers solve a problem?
Find a knowledge or business problem and examine how computers may contribute to solving it.
Eg
How can a salesperson know if stock is in the warehouse?
How can an astronaut control thrusters to orient a spacecraft correctly?
How can people around the world share their spare hard drive space with each other?
(Hint: You may need to gain access to a variety of workplaces to appreciate the breadth of problems that exist.)
Question 4. What problems can be solved with computers?
Given a particular technology, what could you do with it?
Eg
Given a large network of computers, can you make money?
Does this new chip have potential to help the disabled?
Would this new programming language save time for a team of engineers using another language?
(Hint: Go beyond the surface and examine these opportunities in detail - even create experiments and prototypes.)
Exploring these four questions is a large undertaking that is almost impossible without an underlying enthusiasm for technology. Don't try to achieve it all in a week, month or year. But do start, and enjoy your journey.
Talk to any of your profs who are doing research in the area you are interested in.
This can be nerve wracking to do, so I suggest starting by:
- Asking questions in class. Or answering questions if the professor asks any.
- Going to office hours and talking with the professor then.
It’s important to have an “in” with a prof in order to get started on research. They’re essentially the gatekeepers to the research. They have the labs and the funding.
Most profs have funding they can use to hire undergrads for projects. (And if you’re in Canada, you can also apply for a USRA, which helps cover the cost of
Talk to any of your profs who are doing research in the area you are interested in.
This can be nerve wracking to do, so I suggest starting by:
- Asking questions in class. Or answering questions if the professor asks any.
- Going to office hours and talking with the professor then.
It’s important to have an “in” with a prof in order to get started on research. They’re essentially the gatekeepers to the research. They have the labs and the funding.
Most profs have funding they can use to hire undergrads for projects. (And if you’re in Canada, you can also apply for a USRA, which helps cover the cost of a prof hiring you. If you can get one of these, you’ll almost undoubtedly have a prof willing to take you on.)
Once you’re in with a prof, ask them directly about research opportunities. If they don’t have any themselves, they may be able to direct you towards other profs who do.
Also, if there’s something you’re interested in learning about, but your university doesn’t have a specific course for it, but a prof researches it (or something close to it), consider asking that prof if you can do an independent study course on the topic. For most independent study courses, you, as the student, are just as involved in designing the curriculum as the prof. And who knows - you may be able to turn a project that’s for course credit into something worth publishing.
Last note - if you’re not doing the research as part of a course, you *really* should be getting paid to do it. Profs have money for this. Don’t let them use you.

Before I started applying for PhD programs I decided I wanted to know exactly how the gcc compiler worked. And so I spent several weeks breaking it down into its component pieces. That led to the question of how the "Hello, world!" binary worked --- it was 8k bytes long, what did each of those bytes do?
When I did my road trip to interview potential PhD advisors, I was able to discuss that work and where I thought it might lead. It turned out to be a dead end, but those professors were able to get a very accurate assessment of my interests and strengths from that project.
So to do research,
Before I started applying for PhD programs I decided I wanted to know exactly how the gcc compiler worked. And so I spent several weeks breaking it down into its component pieces. That led to the question of how the "Hello, world!" binary worked --- it was 8k bytes long, what did each of those bytes do?
When I did my road trip to interview potential PhD advisors, I was able to discuss that work and where I thought it might lead. It turned out to be a dead end, but those professors were able to get a very accurate assessment of my interests and strengths from that project.
So to do research, pick something simple and ask yourself "Ok, how does this really work?" Take "Hello, world!" for example. What does each byte do? When you run the program, what happens cycle by cycle? What parts of the kernel are touched?
Or if you're more interested in performance optimization, pick a matrix-multiply algorithm and implement it. Grab your processor's architecture documentation and learn how to use the hardware performance counters. Then determine, cycle by cycle, where the bottlenecks are in your code. Can you eliminate those bottlenecks with a combination of coding changes and compiler flags? Can you do better by hand-coded assembly? Can you get to the point where you can prove that, for a given problem size, your code cannot be made to run any faster?
If you're doing this without the benefit of a mentor, it's unlikely that it'll be of publishable quality. But you'll learn a lot, and maybe you'll take the time to write up your results and put them up on arXiv.org.
Simple:
- Select a book on Computer Science.
- Read a chapter
- Work the examples and problems (or as many as you can) at the end of chapter. Use a computer when appropriate.
- Got to 2 until you complete the book.
- Got to 1 to until you have covered all areas of interest in Computer science.
Warning! Books by Donald Knuth have especially hard problems. Some are worthy of a MS or PhD, like Quicksort. Choose only the easy ones.
I have file containing list of such books. Every year I buy 2 or 3 of them and read them cover to cover. You can contact me for the file. A list of some is here.
- Code Complete (2nd edition) by Steve McConnell
- The Pragmatic Programmer
- Structure and Interpretation of Computer Programs
- The C Programming Language by Kernighan and Ritchie
- Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
- Design Patterns by the Gang of Four
- Refactoring: Improving the Design of Existing Code
- The Mythical Man Month
- The Art of Computer Programming by Donald Knuth
- Compilers: Principles, Techniques and Tools by Alfr
I have file containing list of such books. Every year I buy 2 or 3 of them and read them cover to cover. You can contact me for the file. A list of some is here.
- Code Complete (2nd edition) by Steve McConnell
- The Pragmatic Programmer
- Structure and Interpretation of Computer Programs
- The C Programming Language by Kernighan and Ritchie
- Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
- Design Patterns by the Gang of Four
- Refactoring: Improving the Design of Existing Code
- The Mythical Man Month
- The Art of Computer Programming by Donald Knuth
- Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
- Gödel, Escher, Bach by Douglas Hofstadter
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Effective C++
- More Effective C++
- CODE by Charles Petzold
- Programming Pearls by Jon Bentley
- Working Effectively with Legacy Code by Michael C. Feathers
- Peopleware by Demarco and Lister
- Coders at Work by Peter Seibel
- Surely You're Joking, Mr. Feynman!
- Effective Java 2nd edition
- Patterns of Enterprise Application Architecture by Martin Fowler
- The Little Schemer
- The Seasoned Schemer
- Why's (Poignant) Guide to Ruby
- The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
- The Art of Unix Programming
- Test-Driven Development: By Example by Kent Beck
- Practices of an Agile Developer
- Don't Make Me Think
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
- Domain Driven Designs by Eric Evans
- The Design of Everyday Things by Donald Norman
- Modern C++ Design by Andrei Alexandrescu
- Structured Computer Organization
- Database system concepts
- Best Software Writing I by Joel Spolsky
- The Practice of Programming by Kernighan and Pike
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
- Software Estimation: Demystifying the Black Art by Steve McConnel
- The Passionate Programmer (My Job Went To India) by Chad Fowler
- Hackers: Heroes of the Computer Revolution
- Algorithms + Data Structures = Programs
- Writing Solid Code
- JavaScript - The Good Parts
- Getting Real by 37 Signals
- Foundations of Programming by Karl Seguin
- Computer Graphics: Principles and Practice in C (2nd Edition)
- Thinking in Java by Bruce Eckel
- The Elements of Computing Systems
- Refactoring to Patterns by Joshua Kerievsky
- Modern Operating Systems by Andrew S. Tanenbaum
- The Annotated Turing
- Things That Make Us Smart by Donald Norman
- The Timeless Way of Building by Christopher Alexander
- The Deadline: A Novel About Project Management by Tom DeMarco
- The C++ Programming Language (3rd edition) by Stroustrup
- Patterns of Enterprise Application Architecture
- Computer Systems - A Programmer's Perspective
- Agile Principles, Patterns, and Practices in C# by Robert C. Martin
- Growing Object-Oriented Software, Guided by Tests
- Framework Design Guidelines by Brad Abrams
- Object Thinking by Dr. David West
- Advanced Programming in the UNIX Environment by W. Richard Stevens
- Hackers and Painters: Big Ideas from the Computer Age
- The Soul of a New Machine by Tracy Kidder
- CLR via C# by Jeffrey Richter
- The Timeless Way of Building by Christopher Alexander
- Design Patterns in C# by Steve Metsker
- Alice in Wonderland by Lewis Carol
- Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
- About Face - The Essentials of Interaction Design
- Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
- The Tao of Programming
- Computational Beauty of Nature
- Writing Solid Code by Steve Maguire
- Philip and Alex's Guide to Web Publishing
- Object-Oriented Analysis and Design with Applications by Grady Booch
- Effective Java by Joshua Bloch
- Computability by N. J. Cutland
- Masterminds of Programming
- The Tao Te Ching
- The Productive Programmer
- The Art of Deception by Kevin Mitnick
- The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
- Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
- Masters of Doom
- Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
- How To Solve It by George Polya
- The Alchemist by Paulo Coelho
- Smalltalk-80: The Language and its Implementation
- Writing Secure Code (2nd Edition) by Michael Howard
- Introduction to Functional Programming by Philip Wadler and Richard Bird
- No Bugs! by David Thielen
- Rework by Jason Freid and DHH
- JUnit in Action
As an undergraduate student, you will have to push harder to seek the opportunities of doing meaningful research. These are my recommended steps:
- Be excellent (above 3.7/4.0 GPA) at your undergraduate curriculum. I understand that there are required courses that make no sense to you and you have to take them. Don’t be frustrated and start building a habit of reading/studying subjects of zero interest to you and still be very good at it. The skill I’ve just mentioned is Extremely valuable in doing research. It’s painful/dry/boring to read some research papers at times. High undergraduate GPA wil
As an undergraduate student, you will have to push harder to seek the opportunities of doing meaningful research. These are my recommended steps:
- Be excellent (above 3.7/4.0 GPA) at your undergraduate curriculum. I understand that there are required courses that make no sense to you and you have to take them. Don’t be frustrated and start building a habit of reading/studying subjects of zero interest to you and still be very good at it. The skill I’ve just mentioned is Extremely valuable in doing research. It’s painful/dry/boring to read some research papers at times. High undergraduate GPA will also keep the door to Master Program opened for you.
- Take risk and take graduate level courses that have research projects in their curriculum. See why high GPA plays into this strategy now? If your GPA is currently 3.7, you may be able to afford some risk of having the GPA reduced a little bit by taking graduate level classes. Most of the times, the professors will teach you research methods in these classes (they don’t just throw you a topic and ask you to do research about it without setting you up for success). Different schools, different professors will have different ways to start a research paper.
- Build things up from your first few papers. Take your ego out of the equation and really focus on the problem you’re trying to solve. Be passionate about solving the problems. Be prepare to receive lots and lots of critics.
- Look for internships that are relevant to your research interests. Make good connections with the people at the place you are interning. Pay special attentions to real life problems that are not reflected in published research papers (yet)
- Spend lots and lots of time alone by yourself and start develop the habit of thinking deeply about a certain problem - as Einstein called it “the thought experiment”
These steps will help you have a great start. The rest will come to you naturally. Good luck !!
A difficulty with self-studying anything new (and CS is very new to a university junior) is that you don’t have much if any expert guidance to follow more productive tracks and not less productive tracks (e.g., among all the stuff on the Web) although the open courses etc. are better than random Googling; nor do you usually have enough of a personal expert to critique your work and show you how to do better (again with the caveat about some open courses etc.).
So self-studying certainly is possible, and there are more effective and less effective ways to go about it, even with all the resources
A difficulty with self-studying anything new (and CS is very new to a university junior) is that you don’t have much if any expert guidance to follow more productive tracks and not less productive tracks (e.g., among all the stuff on the Web) although the open courses etc. are better than random Googling; nor do you usually have enough of a personal expert to critique your work and show you how to do better (again with the caveat about some open courses etc.).
So self-studying certainly is possible, and there are more effective and less effective ways to go about it, even with all the resources on the Web.
But no YouTube video can compare with a faculty member or TA sitting down with you and giving you insights based on your personal questions and difficulties.
That said, I believe that self-study is a character building as well as a knowledge building process, and IMHO everyone should learn something that way (I did).
I felt like you. Follow what you like and search online.
For web development : Learn to code and help nonprofits
For cyber security : Cybrary - Online Cyber Security Training, Free, Forever
Follow MOOCS in Coursera, YouTube and MIT open courses
More info here :
Read a lot of research papers, and pay close attention to how they are structured.
The most frequent shortcoming I see in paper drafts written by beginners, is that they underestimate the importance of relating their results to the rest of the literature. Your findings can be as spectacularly original as you like, but if you choose to write about them in an equally original style, nobody will understand their significance.
Pick a topic, find some recent papers, and read them. Next, look at the papers they cited. Follow the citations in those too, and after a few rounds, you are likely to come ac
Read a lot of research papers, and pay close attention to how they are structured.
The most frequent shortcoming I see in paper drafts written by beginners, is that they underestimate the importance of relating their results to the rest of the literature. Your findings can be as spectacularly original as you like, but if you choose to write about them in an equally original style, nobody will understand their significance.
Pick a topic, find some recent papers, and read them. Next, look at the papers they cited. Follow the citations in those too, and after a few rounds, you are likely to come across a survey article which summarizes the state of the art for your topic, up to some point in the past. These can be real gemstones, they give you a neat overview of key discoveries in the area without having to follow citations all the way back into the dark ages.
When you've read through a big enough pile of recent papers to find a good survey, read that survey, and finally, read the most important seminal papers it refers to, you will have your head full of which sections belong in such papers, what order they usually appear in, phrases regularly used to describe particular subject-specific things, and ideas about what the common terminology takes as understood vs. what you will have to describe in detail.
Imitating and using this style when you write about your own research does wonders for how easily people in your field can absorb what you want to say, and that is a marvellous thing.
I'm sure there are a million other ways to prepare as well, but this is at least one recommendation.
Research in computer science can cover a vast array of topics, ranging from artificial intelligence and machine learning to cybersecurity, data science, computer vision, and more. Here are some project ideas across different subfields of computer science along with approaches to tackle them:
1> Machine Learning and Data Science:
- Predictive Modeling: Develop a machine learning model to predict stock prices, weather patterns, or customer churn for a company.
- + Natural Language Processing (NLP): Create a sentiment analysis tool for analyzing social media data or customer reviews.
- + Computer Vision: B
Research in computer science can cover a vast array of topics, ranging from artificial intelligence and machine learning to cybersecurity, data science, computer vision, and more. Here are some project ideas across different subfields of computer science along with approaches to tackle them:
1> Machine Learning and Data Science:
- Predictive Modeling: Develop a machine learning model to predict stock prices, weather patterns, or customer churn for a company.
- + Natural Language Processing (NLP): Create a sentiment analysis tool for analyzing social media data or customer reviews.
- + Computer Vision: Build an object detection system for identifying objects in images or videos.
- + Recommender Systems: Develop a recommendation engine for movies, books, or products based on user preferences.
- Approach:
- + Start with literature review to understand existing models and techniques.
- + Collect and preprocess data relevant to your problem.
- + Experiment with different algorithms and techniques.
- + Evaluate your model’s performance using appropriate metrics.
- + Iterate on your model based on feedback and results.
- 2> Cybersecurity:
- + Network Security: Develop a tool for detecting and preventing network intrusions or DoS attacks.
- + Malware Analysis: Analyze malware samples to identify patterns and signatures for detection.
- + Vulnerability Assessment: Build a system to identify vulnerabilities in software applications or networks.
- Approach:
- + Stay updated with the latest cybersecurity threats and techniques.
- + Set up a lab environment for testing and experimentation.
- + Use both offensive (hacking) and defensive (security measures) approaches.
- + Document your findings and methodologies carefully.
- + Collaborate with cybersecurity professionals for validation and feedback.
- 3> Software Engineering:
- + DevOps Automation: Develop automation scripts for continuous integration and deployment pipelines.
- + Code Quality Analysis: Build a tool for analyzing code quality metrics and identifying areas for improvement.
- + Software Testing: Develop novel testing techniques or tools for ensuring software reliability.
- Approach:
- + Identify a specific problem or pain point in the software development lifecycle.
- + Research existing tools and methodologies in software engineering.
- + Implement your solution using best practices in software development.
- + Test your solution rigorously using real-world scenarios.
- + Solicit feedback from software engineers and developers for improvements.
- 4> Artificial Intelligence:
- + Generative Adversarial Networks (GANs): Create a GAN model for generating realistic images.
- + Reinforcement Learning: Develop an AI agent to play and learn strategies for games like chess or Go.
- + AI Ethics: Investigate ethical considerations in AI applications and develop frameworks for responsible AI.
- Approach:
- + Understand the theoretical foundations of AI algorithms and techniques.
- + Experiment with different architectures and hyperparameters.
- + Consider ethical implications and biases in your AI models.
- + Evaluate your model’s performance in various scenarios.
- + Contribute to the broader discussion on AI ethics and responsible AI development.
- Regardless of the specific project, it’s essential to approach your research with curiosity, rigor, and a willingness to learn. Document your progress, findings, and challenges along the way, and don’t hesitate to seek guidance from mentors and experts in the field. Good luck with your research!
James Leland Harp has a good lead for you. By getting your supervisor in on the topic, you will get more assistance from him and be able to form a better relationship than if you choose something he/she dislikes or feels is irrelevant.
That being said, I always reccommend choosing something you are parssionate about. The project will take a lot of your time, and you will do a better job as a result if self interest.
Choosing a topic that is not well researched is a bonus, especially if it is one that is emerging in the marketplace.
My son recently completed a project in ‘Full Stack’ development a
James Leland Harp has a good lead for you. By getting your supervisor in on the topic, you will get more assistance from him and be able to form a better relationship than if you choose something he/she dislikes or feels is irrelevant.
That being said, I always reccommend choosing something you are parssionate about. The project will take a lot of your time, and you will do a better job as a result if self interest.
Choosing a topic that is not well researched is a bonus, especially if it is one that is emerging in the marketplace.
My son recently completed a project in ‘Full Stack’ development and was able to land a job with a good firm that did not have, but wanted the skills. He was passionate about the subject, his supervisor wanted to research the subject and they both learned a lot.
Full Stack is now a bit more commonplace, there is more research, and his project would probably now be a ‘B’ tier project.
I wrote a post about this topic few months back. Hopefully this helps: Computer Science degree from The University of Self Study
Sure, it’s possible to self-study any discipline. Will it be sufficient to land you a well-paying job? That’s where it becomes debatable.
Not a lot of employers will look at your self-study if you document it as such on your resume and be knocking on your door to hire you. They expect you to have exposure to certain elements of a standard computer science curriculum, and you aren’t necessarily going to be covering all required elements of that just studying yourself. And how will your abilities be ranked against your competition? How do you make yourself stand out from the other applicants? Tha
Sure, it’s possible to self-study any discipline. Will it be sufficient to land you a well-paying job? That’s where it becomes debatable.
Not a lot of employers will look at your self-study if you document it as such on your resume and be knocking on your door to hire you. They expect you to have exposure to certain elements of a standard computer science curriculum, and you aren’t necessarily going to be covering all required elements of that just studying yourself. And how will your abilities be ranked against your competition? How do you make yourself stand out from the other applicants? That’s REALLY where the rubber meets the road.
For example, how will they ensure you have exposure to all of the standard data structures? Indexing and trees? How prepared are you to analyze various algorithms and find the most efficient method of solution? Finding a good hashing function for a certain purpose? Demonstrate your competence in working with b+tree indexed files? Can you write a C compiler? Deal with the internals of a Linux system?
But if you’re just pursuing computer science as a hobby for pleasure, hack away!!
Some of the latest fields of research in computer science include:
- Artificial Intelligence (AI) and Machine Learning (ML): Advancing algorithms, improving model interpretability, and addressing ethical considerations in AI.
- Quantum Computing: Researching quantum algorithms, error correction, and practical applications for quantum computers.
- Cybersecurity: Developing robust techniques to secure systems against evolving cyber threats, including AI-driven attacks.
- Blockchain and Cryptocurrencies: Exploring applications beyond cryptocurrencies, such as secure smart contracts and decentralized systems.
Some of the latest fields of research in computer science include:
- Artificial Intelligence (AI) and Machine Learning (ML): Advancing algorithms, improving model interpretability, and addressing ethical considerations in AI.
- Quantum Computing: Researching quantum algorithms, error correction, and practical applications for quantum computers.
- Cybersecurity: Developing robust techniques to secure systems against evolving cyber threats, including AI-driven attacks.
- Blockchain and Cryptocurrencies: Exploring applications beyond cryptocurrencies, such as secure smart contracts and decentralized systems.
- Human-Computer Interaction (HCI): Researching user experience, augmented reality, virtual reality, and natural language processing for improved interactions.
- Autonomous Systems: Advancing research in self-driving cars, drones, and other autonomous technologies.
- Robotics: Enhancing robot capabilities, human-robot collaboration, and swarm robotics.
But, to name the best field is subjective, because it depends on the interest of the individual and which field they want to work on. If you do not know your field then you should explore as many fields as possible and then choose from your knowledge where you find yourself most interested and would be mostly excited to work.
Depends on where you study and your plans viz. placement or higher studies.
In general according to me, you need to have
- knowledge of basics of programming - mainly logical ability
- strong fundamentals in mathematics - linear algebra, discrete mathematics, numerical methods. In particular the relevance of mathematics on your day to day computer science
- strong fundamentals in data structures, algorithms and OOPS
- programming ability in Java
- profile in hackerrank and ability to solve test cases and competitive programming
- functional profile with projects in web/android/data science with any one database
Depends on where you study and your plans viz. placement or higher studies.
In general according to me, you need to have
- knowledge of basics of programming - mainly logical ability
- strong fundamentals in mathematics - linear algebra, discrete mathematics, numerical methods. In particular the relevance of mathematics on your day to day computer science
- strong fundamentals in data structures, algorithms and OOPS
- programming ability in Java
- profile in hackerrank and ability to solve test cases and competitive programming
- functional profile with projects in web/android/data science with any one database backend
- github track record
- atleast 2 projects which are publicly visible and accessible
- three computing subjects where you are strong in fundamentals and have the ability to answer any questions
- ability to write and read coherently and some visible track record of that
- participation in national level and global hackathons
The world is moving towards a one pager where we just google you and see what you have done. We are also moving towards an era where we see your passion in the work.
All the best
Same as in any other field
Please see answer to a related question