Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: I'm a graduate who focused on C/C++, HPC and CG. What to learn next?
3 points by xerok on Oct 29, 2020 | hide | past | favorite | 9 comments
I also studied maths and physics, among things I do remember. From those starting subjects, and knowing that I intend to start my career in the domain of computer graphics, I'm looking for a set of other "logical" next ones to learn.

And I'm struggling with defining "logical" in this context. Because right now my primary focus is deepening the set I already have, further exploring those subjects (something I'm doing right now with C++ and CG), and maybe learn a language like Lua. But on the other hand, after finding that job, I want to broaden my general CS knowledge, I'm really curious about cryptocurrencies and what I can do as a CS engineer to help solve the big problems of our time, such as climate change. So any answer going either direction is welcomed.



> I can do as a CS engineer to help solve the big problems of our time, such as climate change

So far, technology has only created environmental problems. I don't think environmental problems created by technology can be solved with technology without creating another problems.


I think that this topic is quite complex, and generalities are to be done with care. Yes new technologies such as 5G and autonomous cars (electric or not), when doing a comprehensive analysis of those systems, will bring more problems than solutions. But technology has so many other shapes, even in the field of CS. Would working on software to simulate and visualise atmospheric phenomenons be working toward more problems ? Working on optimizing the use of an electric grid ? Even 5G and autonomous cars are not problematic by themselves, its how we plan to make, deploy and use those technologies that will lead to even more troubles. To sum up my view, I think that tech is not the problem, but tech providers and users are.


In general, all environmental problems that people create stem from using technology - i.e. without technology (starting with the most basic ones, e.g. mastering fire), we are harmless enough to not be able to do any damage. So far, the more technologies we've developed, the more damage we've done to the environment. I can't see this trend reversing.


Well, this trend will reverse, no way out of this. We either find solutions (voluntary degrowth for instance), or physics laws will stop us, and from that point the societies us two live in collapse. But who knows what will happen ? So far, we developed new tech not thinking about those physical limits. That state of mind is definitely changing, especially among students. With that said I also tend to be pessimistic, and I don't think things are moving fast enough in the right direction. But if I do not hope for that, try to find where I can use my skills (and what I love to do) to help tackle those challenges, what do I do ? Because yes, egotistically, I still want to work in CS.


What to learn next? Interpersonal skills!


CUDA

vulkan,

ray tracing

fluid simulation

physics engine


When it comes to ray tracing and fluid simulation, I wonder if I should start with old papers and implementations, because it may be easier to get, or they are so outdated that it would be a waste of time.


for ray tracing you should start with https://pbrt.org/

I'm not familiar with fluid simulation.

graphics is a broad field. there are many sub fields.


can someone answer this ? its so hard for me

public class ArrayOfEmployees {

                static Scanner kb = new Scanner (System.in);

                public static void main ( ) {

                         final int SIZE = 100;

                         String [ ] empID = new String [SIZE];             //array of employee's id

                         String [ ] empName = new String [SIZE];           //array of employee's name

                         double [ ] empSal = new double [SIZE];            //array of employee's salary

                         int response;



                         System.out.println ("\fInput " + SIZE + " of Empolyees' Records");

                         accept (empID, empName, empSal);



                         System.out.println (“\nUnsorted lists output:”);

                         displayAllEmp (empID, empName, empSal);

 

    do {

                       System.out.println (“\nEmployee ID is found in location “ + searchByID (empID, empName, empSal));           

                      System.out.println (“\nThere are “ + countEmpSalary (empSal, sal) + “  whose salary is above “ + sal);

        System.out.println ("\nReapeat? Press [0] to stop. >>> ");

        response = kb.nextInt();

    }while (response != 0);



                        sortBySalaryInDescending (empID, empName, empSal);                

                        System.out.println (“\nSorted lists output by Employee's Salary in Descending Order”);

                        displayAllEmp (empID, empName, empSal);



          sortByEmpNameInAscending (empID, empName, empSal);

                        System.out.println (“\nSorted lists output by Employee's Name in Ascending Order”);

                        displayAllEmp (empID, empName, empSal);

                        


                        do {

                       System.out.println (“\nEmployee's name is found in location “ + searchByName (empID, empName, empSal));                  

                      System.out.println (“\nThere are “ + countEmpSalary (empSal, sal) + “  whose salary is above “ + sal);

         deleteSpecificEmpByID (empID, empName, empSal);

        System.out.println ("\nReapeat? Press [0] to stop. >>> ");

        response = kb.nextInt();

    }while (response != 0);                    

                }//End of method main



                //Method Descriptions. 

                //You may also add a code in the main method if you think it is necessary but never delete from the existing code.


1. accept (empID, empName, empSal) – 10 points - input N number of employees’ records. ID number must be unique. If ID number is not unique, discard the input.

2. displayAllEmp (empID, empName, empSal) – 5 points - display all employees’ records in table form

3. searchByID (empID, empName, empSal)) – 5 points - Input employee’s ID to be searched. Display employee’s information if found, otherwise, display an appropriate message. Use linear search in searching.

4. searchByName (empID, empName, empSal)) – 5 points - Input employee’s name to be searched. Display employee’s information if found, otherwise, display an appropriate message. Use binary search in searching.

5. countEmpSalary (empSal, sal) – 5 points - count and returns the number of employee whose salary is greater than sal

6. sortBySalaryInDescending (empID, empName, empSal) – 5 points - arrange the records in descending order using salary as the key

7. sortByEmpNameInAscending (empID, empName, empSal) - 5 points - arrange the records in ascending order using name as the key

8. deleteSpecificEmpByID (empID, empName, empSal) – 5 points - Inputs ID to be deleted. If found, remove the record, otherwise, display appropriate message.

}




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: