I can give my anecdotal experience since I applied recently to these and was called up for coding exercise to one of them. Since I was shortlisted for the coding task at only ONE of the places I applied, I can't speak generally about all pre-docs, but I certainly suppose some will act in a similar way. Unless you are really familiar with the research and work they do and have a good grasp of some programming language (Stata, R, Python, Matlab, etc.) it will be difficult to get into one of these. Some may be more flexible and expect learning on the job but others are specifically looking for someone who can do exactly what they need. The salary for these are decent and the title for this job has moved from research assistant to pre-doc. Along with the added competition will come with additional expectations to be able to do the job well. This will definitely vary from program but nevertheless, it will be a good idea to specialize in one language and perhaps 1-2 areas where you know how to apply in context.
The task I received had to do with cleaning geographic data and while I did have experience using some of the aforementioned programming languages, I found the data task quite difficult as it was very different from the type of data work I normally encountered. So while I tried my best to complete the task, it inevitably didnt turn out well and as such I didnt make the cut.
In general, you should have good grades (high gpa, in relevant courses if possible) and potentially previous research experience, be it as an RA or for a thesis but I will specifically adviseto target those predoc positions for which you think you'll be able to do well in the job and most importantly the type of positions for which you'll be able to do well in the data task. I.e. If there is pre doc position thats related to macroeconomic research, then they may expect you to code a lot using matlab (as an e.g.), so you should prepare yourself by working out various exercises relevant in a macro context.
Obviously in this example, learning the language in general would be useful, but it would help you immensely if you familiarized yourself with the macroeconomic applications within matlab, just so you don't get blindsided during the coding task. The coding task will mostly likely determine whether you get the job or not (ex ante barring a horrendous interview performance).
I took a chance applying to some positions that I didn't have much experience in and surprisingly I got shortlisted. However in the end it didn't turn out well. (Note: I later found out the only reason I got called up was because they had been looking for several months for someone to fit the position)